Computer >> Máy Tính >  >> Lập trình >> C ++

Bộ đệm flush có nghĩa là gì trong C ++?

Bộ đệm được sử dụng để chuyển dữ liệu máy tính từ một vùng lưu trữ tạm thời sang bộ nhớ vĩnh viễn của máy tính. Nếu chúng tôi thay đổi bất kỳ điều gì trong một số tệp, những thay đổi chúng tôi thấy trên màn hình sẽ được lưu trữ tạm thời trong bộ đệm.

Trong C ++, rõ ràng chúng ta có thể đã tuôn ra để buộc ghi bộ đệm. Nếu chúng ta sử dụng std ::endl, nó sẽ thêm một ký tự dòng mới và cũng xóa nó. Nếu điều này không được sử dụng, chúng ta có thể sử dụng flush một cách rõ ràng. Trong chương trình sau, lúc đầu, không có phép xả nào được sử dụng. Ở đây chúng tôi đang cố gắng in các số và đợi trong một giây. Đối với lần đầu tiên, chúng tôi không thể thấy bất kỳ đầu ra nào cho đến khi tất cả các số được lưu vào bộ đệm, sau đó các số sẽ được hiển thị trong một lần.

Trong ví dụ thứ hai, mỗi số sẽ được in, sau đó đợi một lúc rồi in tiếp số tiếp theo. Vì vậy, để sử dụng flush, nó sẽ gửi đầu ra đến màn hình.

Ví dụ

#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;
}

Đầu ra

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

Ví dụ

#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;
}

Đầu ra

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