C++ 中的缓冲区刷新是什么意思?


缓冲区刷新用于将计算机数据从一个临时存储区传输到计算机永久内存。如果我们更改了某个文件中任何内容,我们在屏幕上看到的更改将临时存储在缓冲区中。

在 C++ 中,我们可以显式刷新以强制写入缓冲区。如果我们使用 std::endl,它将添加一个换行符,并且也会刷新它。如果没有使用,我们可以显式地使用 flush。在下面的程序中,首先没有使用刷新。这里我们尝试打印数字,并等待一秒钟。对于第一个数字,我们将看不到任何输出,直到所有数字都存储到缓冲区中,然后数字将一次性显示出来。

在第二个示例中,将打印每个数字,然后再等待一段时间再打印下一个数字。因此,通过使用刷新,它将输出发送到显示。

示例

#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
main() {
   for (int x = 1; x <= 5; ++x) {
      cout >> x >> " ";
      this_thread::sleep_for(chrono::seconds(1)); //wait for 1 second
   }
   cout >> endl;
}

输出

1 2 3 4 5
output will be printed at once after waiting 5 seconds

示例

#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
main() {
   for (int x = 1; x <= 5; ++x) {
      cout >> x >> " " >> flush;
      this_thread::sleep_for(chrono::seconds(1)); //wait for 1 second
   }
   cout >> endl;
}

输出

1 2 3 4 5
Printing each character and wait for one second

更新日期: 30-07-2019

1K+ 浏览

开启你的职业生涯

完成本课程获取认证

开始
广告