Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

บัฟเฟอร์ฟลัชหมายถึงอะไรใน C ++


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

ใน 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