如何在CPP中撤消重定向输出操作?

时间:2018-12-26 19:10:57

标签: c++ iostream ostream

当我看到这个问题时,这对我来说似乎很有趣:

cout.rdbuf(cerr.rdbuf());

是的,已成功将正常输出重定向到错误输出流。但这是噩梦,我想REVERSE采取这种(愚蠢的)措施。但是cerr.rdbuf(cout.rdbuf());在第一个命令运行后没有帮助。即输出流中没有变化。

  

如何用C ++完成?

((“ that”将normal output stream重定向回自身(umm),并将其与error output stream分开)

1 个答案:

答案 0 :(得分:1)

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

streambuf * some_name = cout.rdbuf();存储普通输出流的原始地址。

cout.rdbuf(some_name);恢复

这也适用于其他类型的流。 (尽管它也适用于输入流,但没有理由这样做。)