I am using a library that is printing a warning message to cout
or cerr
. I don't want this warning message to reach the output of my program. How can I catch this output and put it into /dev/null
or similar?
MWE:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
The output should be:
Interesting message.
How should I modify main
to get the desired output? (foo
must not be changed.)
I tried using freopen()
and fclose(stdout)
as suggested in this question How can I redirect stdout to some visible display in a Windows Application?. The result is that nothing is printed.
freopen
is definitely the best-practice to be applied in this case. – Devitalize