有没有人知道是否有一个技巧切换所有cout <<功能不打印出可见输出?我试图将我和其他人编写的一些代码组合起来组合一个演示.我宁愿不将输出重定向到一个文件,并希望有一个在Windows和Linux之间具有一定程度兼容性的解决方案.
在我的场景中,我有许多代码行,#defines当某些方法产生调试输出时,它们具有各种控制.我想打电话给:
cout.off();
driverForAffectA();
driverForAffectB();
cout.on();
printSpecializedDebug();
exit(0);
Run Code Online (Sandbox Code Playgroud)
GWW*_*GWW 17
你可以改变cout的流缓冲区.
streambuf *old = cout.rdbuf();
cout.rdbuf(0);
cout << "Hidden text!\n";
cout.rdbuf(old);
cout << "Visible text!\n";
Run Code Online (Sandbox Code Playgroud)
编辑:
感谢John Flatness的评论,您可以稍微缩短代码:
streambuf *old = cout.rdbuf(0);
cout << "Hidden text!\n";
cout.rdbuf(old);
cout << "Visible text!\n";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |