在一個控制檯應用程序我打電話,我不感興趣的庫函數輸出一些消息(可能用printf):如何暫時抑制printf的輸出?
void libFoo()
{
// does some stuff
printf("boring message");
// does some more stuff
}
我試圖抑制COUT之前沒有工作,因此爲什麼我認爲libFoo使用printf:
cout << "interesting messsage" << endl;
streambuf* orig_buf = cout.rdbuf();
cout.rdbuf(NULL);
libFoo();
cout.rdbuf(orig_buf);
cout << "another interesting messsage" << endl;
此代碼輸出所有這些消息。有沒有辦法暫時抑制printf的輸出?我正在使用Linux Mint。
你可以覆蓋printf lib調用。 – Stargateur
你可以,但我不認爲你可以完全移植它。看看freopen和dup功能。 – Xarn
請記住,cout是緩衝的,而cerr不是。如果你禁用某些東西,確保緩衝區被刷新。 – harper