首页 > 后端开发 > C++ > 如何在 C 中使用 `std::flush` 确保立即输出?

如何在 C 中使用 `std::flush` 确保立即输出?

DDD
发布: 2024-11-02 21:04:02
原创
966 人浏览过

How to Ensure Immediate Output in C   Using `std::flush`?

在 C 中使用 std::flush 强制立即输出

在 C 程序中,经常会遇到将文本打印到使用 std::cout 的屏幕不会立即出现。这可能会出现问题,尤其是当文本旨在在执行长时间运行的计算时向用户提供实时反馈时。

要解决此问题,请考虑以下代码:

<code class="cpp">std::cout << "Beginning computations...";  // Output 1
computations();
std::cout << " done!\n";                   // Output 2</code>
登录后复制

输出 #1 通知用户计算正在进行,而输出 #2 则表示计算已完成。然而,Output #1 可能要等到computations() 返回后才会出现在屏幕上。

幸运的是,有一个简单的解决方案:引入 std::flush。将 std::flush 插入代码中会强制 std::cout 缓冲区立即打印到屏幕上:

<code class="cpp">std::cout << "Beginning computations..." << std::flush;</code>
登录后复制

这确保了 Output #1 在computations() 调用之前显示,从而为用户提供立即视觉反馈。

或者,可以使用 std::cerr 代替 std::cout,它写入标准错误流。默认情况下,std::cerr 立即刷新其缓冲区,无需 std::flush 即可解决问题。

以上是如何在 C 中使用 `std::flush` 确保立即输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板