บัฟเฟอร์ฟลัชใช้ในการถ่ายโอนข้อมูลคอมพิวเตอร์จากพื้นที่เก็บข้อมูลชั่วคราวหนึ่งไปยังหน่วยความจำถาวรของคอมพิวเตอร์ หากเราเปลี่ยนแปลงสิ่งใดในไฟล์บางไฟล์ การเปลี่ยนแปลงที่เราเห็นบนหน้าจอจะถูกเก็บไว้ในบัฟเฟอร์ชั่วคราว
ใน C ++ เราสามารถล้างข้อมูลเพื่อบังคับให้เขียนบัฟเฟอร์ได้อย่างชัดเจน หากเราใช้ std::endl จะเพิ่มอักขระขึ้นบรรทัดใหม่หนึ่งตัวและล้างข้อมูลด้วย หากไม่ได้ใช้ เราสามารถใช้ flush ได้อย่างชัดเจน ในโปรแกรมต่อไปนี้ในตอนแรกจะไม่มีการใช้ฟลัช ที่นี่เรากำลังพยายามพิมพ์ตัวเลขและรอหนึ่งวินาที สำหรับครั้งแรก เราจะไม่เห็นผลลัพธ์ใดๆ จนกว่าตัวเลขทั้งหมดจะถูกเก็บไว้ในบัฟเฟอร์ จากนั้นตัวเลขจะแสดงในช็อตเดียว
ในตัวอย่างที่สอง ระบบจะพิมพ์แต่ละหมายเลข จากนั้นรอสักครู่แล้วจึงพิมพ์หมายเลขถัดไปอีกครั้ง ดังนั้นสำหรับการใช้ 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