将cout切换回在屏幕上书写
Switching cout back to writing to the screen
在我的程序中,我正在切换我的cout以使用以下命令写入文件:
int newstdout = open("myFile.txt",O_WRONLY|O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO);
close(1);
dup(newstdout);
close(newstdout);
我以后如何在程序中切换回我的cout打印到屏幕(终端(?
使cout
(或任何其他流(输出到不同目标的正确方法是调用其rdbuf()
方法以在不同的流缓冲区中交换。如果需要,您可以稍后在旧缓冲区中进行交换。例如:
#include <iostream>
#include <fstream>
std::ofstream outfile("myFile.txt");
auto cout_buff = std::cout.rdbuf();
std::cout.rdbuf(outfile.rdbuf());
// anything written to std::cout will now go to myFile.txt instead...
std::cout.rdbuf(cout_buff);
// anything written to std::cout will now go to STDOUT again...
相关文章:
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- 按回车键后输出屏幕关闭
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?
- SFML 向下移动时如何围绕屏幕中心旋转?
- 截取屏幕截图后程序卡住
- C++鼠标单击时的屏幕截图不起作用
- 屏幕插入运算符<<的运算符过载问题
- 获取网格中心的屏幕位置
- C++正确书写和打印复数精度 (cout) 的问题?
- SFML 中的字体.信息不显示在屏幕上.显示的不是信息,而是点
- 如何在屏幕上环绕x和y?
- GetDIBits 在屏幕捕获函数中多次迭代后返回零
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- GTKMM:拍摄绘图区域的屏幕截图?
- cocos2d-x:在屏幕上多行书写单词