Я использую библиотеку, которая печатает предупреждающее сообщение на 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)
, как было предложено в этом вопросе Как перенаправить stdout на какой-либо видимый экран в приложении Windows?. В результате ничего не печатается.