如何反转CPP中的重定向输出动作?
How to reverse the redirecting output action in CPP?
当我看到这个问题时,我觉得有点好笑:
cout.rdbuf(cerr.rdbuf());
是的,成功将正常输出重定向到错误输出流。但这是噩梦,我想 REVERSE
这个(愚蠢的)动作。但是在第一个命令有 运行 之后 cerr.rdbuf(cout.rdbuf());
没有帮助。即输出流没有变化。
How can that be done in C++?
("that" 正在将 normal output stream
重定向回自身 (umm) 并将其与 error output stream
分开)
http://www.cplusplus.com/reference/ios/ios/rdbuf/
streambuf * some_name = cout.rdbuf();
存放你正常输出流的原始地址。
cout.rdbuf(some_name);
到 恢复。
这也适用于其他类型的流。 (虽然它也适用于输入流,但没有理由这样做。)
当我看到这个问题时,我觉得有点好笑:
cout.rdbuf(cerr.rdbuf());
是的,成功将正常输出重定向到错误输出流。但这是噩梦,我想 REVERSE
这个(愚蠢的)动作。但是在第一个命令有 运行 之后 cerr.rdbuf(cout.rdbuf());
没有帮助。即输出流没有变化。
How can that be done in C++?
("that" 正在将 normal output stream
重定向回自身 (umm) 并将其与 error output stream
分开)
http://www.cplusplus.com/reference/ios/ios/rdbuf/
streambuf * some_name = cout.rdbuf();
存放你正常输出流的原始地址。
cout.rdbuf(some_name);
到 恢复。
这也适用于其他类型的流。 (虽然它也适用于输入流,但没有理由这样做。)