【发布时间】:2012-01-04 23:43:45
【问题描述】:
我正在使用一个正在向cout 或cerr 打印警告消息的库。我不希望此警告消息到达我的程序的输出。如何捕获此输出并将其放入 /dev/null 或类似的?
MWE:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
输出应该是:
Interesting message.
我应该如何修改main 以获得所需的输出? (foo 不得更改。)
我尝试使用freopen() 和fclose(stdout),正如这个问题How can I redirect stdout to some visible display in a Windows Application? 中所建议的那样。结果是没有打印任何内容。
【问题讨论】:
-
freopen绝对是在这种情况下应用的最佳实践。