Как отменить действие перенаправления вывода в CPP? - PullRequest
0 голосов
/ 26 декабря 2018

Мне кажется немного странным, когда я вижу эту проблему:

cout.rdbuf(cerr.rdbuf());

Да, успешно перенаправил нормальный вывод в поток вывода ошибок.Но вот кошмар, я хотел REVERSE это (глупое) действие.Но cerr.rdbuf(cout.rdbuf()); не помогает после выполнения первой команды.то есть нет изменений в потоке вывода.

Как это можно сделать в C ++?

("that" перенаправляет normal output stream обратно на себя (umm) и отделить его от error output stream)

1 Ответ

0 голосов
/ 28 декабря 2018

http://www.cplusplus.com/reference/ios/ios/rdbuf/

streambuf * some_name = cout.rdbuf(); для сохранения вашего исходного адреса обычного выходного потока.

cout.rdbuf(some_name); до восстановление .

Это также работает на других типах потока.(Хотя это также работает для входного потока, нет причин делать это.)

...