如何在C++[库模式]中抑制 LibSVM 的输出

How to suppress output of LibSVM in C++ [library mode]

本文关键字:LibSVM 输出 模式 C++      更新时间:2023-10-16

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

您可以使用他们在 svm_train.c 中执行的相同技巧。

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

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

    svm_set_print_string_function(&print_null);
    

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

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

并再次构建它:

nmake -f Makefile.win lib
svm_set_print_string_function([](auto c) {});