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