如何在C ++中禁止LibSVM的输出[库模式]

时间:2015-04-21 07:55:49

标签: c++ svm libsvm

当从命令行执行LibSVM时,我可以给-q作为参数,一切都会好的。但是,当我将它用作库时,没有以编程方式设置的-q参数。那怎么能抑制输出呢?在Java和python中存在解决方案,但在C ++中则不存在。

3 个答案:

答案 0 :(得分:2)

您可以使用与 svm_train.c 相同的技巧。

  • 首先定义一个不执行任何操作的函数:

    void print_null(const char *s) {}
    
  • 然后调用设置打印的功能:

    svm_set_print_string_function(&print_null);
    

答案 1 :(得分:0)

LibSVM也作为源代码分发。您可以删除所有不需要的fprintf或将输出函数指针信息设置为0

static int (*info)(const char *fmt,...) = 0;//&printf;

再次构建它:

nmake -f Makefile.win lib

答案 2 :(得分:0)

svm_set_print_string_function([](auto c) {});