C++ 强制 std::cout 刷新(打印到屏幕)
c++ force std::cout flush (print to screen)
我有如下代码:
std::cout << "Beginning computations..."; // output 1
computations();
std::cout << " done!n"; // output 2
然而,问题是输出 #1 和输出 #2 经常(几乎)同时出现。 也就是说,输出 #1 通常直到computations()
返回后才会打印到屏幕上。 由于输出 #1 的整个目的是指示后台正在发生某些事情(从而鼓励用户耐心等待),因此这个问题不好。
有没有办法强制在computations()
调用之前打印std::cout
缓冲区? 或者,是否有其他方法(使用std::cout
以外的其他方法)打印到标准输出可以解决此问题?
只需插入std::flush
:
std::cout << "Beginning computations..." << std::flush;
另请注意,插入std::endl
也会在写换行符后刷新。
除了Joseph Mansfield的答案,std::endl也做了冲洗(除了一个新行)。
在输出序列 os 中插入一个结束行字符,并像调用 os.put(os.widen('')) 后跟 os.flush() 一样刷新它。
相关文章:
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 使用 fstream 库并在屏幕上打印的文件有问题?
- UE4在屏幕上的打印位置
- Cout 一个字符串可以打印任何内容到屏幕上
- 如何在多维矢量中仅添加特定元素并将内容打印到屏幕
- 如何以CV_16UC1的方式读取JPG图像并在屏幕上打印?
- UNIX API 调用:使用 read() 函数打开文件并将其打印到屏幕上会增加额外的随机字符
- 作为参数传递的打印功能指针导致屏幕上打印"1"
- 在屏幕上打印 X 的形状
- 如何读取二进制文件并在屏幕上打印 3?
- 用putchar在屏幕上打印字符
- C / SFML:使用两个递归调用在屏幕上打印凸形形状仅显示第一个递归调用中的形状,而不是第二个
- 如何在不保存文件的情况下制作打印屏幕并将其发送到FTP服务器?我的工作代码将文件保存到HDD
- 如何在屏幕上打印2^20行C 的整数(1秒钟以下)
- 使用freopen()打印到文件和屏幕
- C++ 强制 std::cout 刷新(打印到屏幕)
- 无法在屏幕上打印 nullptr 的值
- 如何使用Qt/C++和各种显示器拍摄打印屏幕
- C++以二进制形式读取整个文件并将其打印在屏幕上
- Qt:按键事件中的打印屏幕键