警告メッセージをcout
またはcerr
に出力しているライブラリを使用しています。私はこの警告メッセージを私のプログラムの出力に届かせたくありません。この出力をキャッチして/dev/null
または類似のものに入れるにはどうすればよいですか?関数出力を/ 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
を変更してはいけません。)
この質問How can I redirect stdout to some visible display in a Windows Application?で提案されているように私はfreopen()
とfclose(stdout)
を使用してみました。その結果、何も印刷されません。
はこの作品をありがとう、しかし、私は受け入れ答えとして、他の答えをマークすることに決めました。 – Unapiedra
ありがとう@Unapiedra。マナーはいつも高く評価されています:) – wreckgar23
'rdstate'で現在の状態を保存し、その後にそれをリセットすることをお勧めしますか?ストリームの状態をクリアするよりも少し安全です。 – SirGuy