Перенаправление вывода функции на / dev / null

Я использую библиотеку, которая выводит предупреждение на cout или cerr . Я не хочу, чтобы это предупреждающее сообщение достигло результата моей программы. Как я могу поймать этот вывод и поместить его в / dev / null или аналогичный?

MWE:

#include 

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

19
задан Community 23 May 2017 в 12:09
поделиться