বাফার ফ্লাশ হলো কম্পিউটার ডেটাকে একটি অস্থায়ী স্টোরেজ এলাকা থেকে কম্পিউটারের চিরস্থায়ী মেমরিতে ট্রান্সফার করার প্রক্রিয়া। যদি আমরা কোনো ফাইলে কিছু পরিবর্তন করি, তবে স্ক্রিনে দেখানো পরিবর্তনগুলো একটি বাফারে অস্থায়ীভাবে সংরক্ষিত থাকে।
সি++-এ, আমরা স্পষ্টভাবে flush ব্যবহার করে বাফারকে লিখতে বাধ্য করতে পারি। যদি আমরা std::endl ব্যবহার করি, তবে এটি একটি নতুন লাইন ক্যারেক্টার যোগ করে এবং বাফারটি ফ্লাশ করে। যদি এটি ব্যবহার না করা হয়, তবে আমরা স্পষ্টভাবে flush ব্যবহার করতে পারি। নিচের প্রোগ্রামে প্রথমে কোনো ফ্লাশ ব্যবহার করা হয়নি। এখানে আমরা সংখ্যাগুলো প্রিন্ট করার চেষ্টা করছি এবং এক সেকেন্ড অপেক্ষা করছি। প্রথম ক্ষেত্রে, সব সংখ্যা বাফারে সংরক্ষিত হওয়া পর্যন্ত কোনো আউটপুট দেখা যাবে না, তারপর সব সংখ্যা একসাথে প্রদর্শিত হবে।
দ্বিতীয় উদাহরণে, প্রতিটি সংখ্যা প্রিন্ট হবে, তারপর কিছুক্ষণ অপেক্ষা করবে, আবার পরবর্তীটি প্রিন্ট হবে। flush ব্যবহার করার কারণে, আউটপুট সরাসরি ডিসপ্লে-এ পাঠানো হয়।
উদাহরণ ১: ফ্লাশ ছাড়া
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
int main() {
for (int x = 1; x <= 5; ++x) {
cout >> x >> " ";
this_thread::sleep_for(chrono::seconds(1)); // ১ সেকেন্ড অপেক্ষা
}
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;
int main() {
for (int x = 1; x <= 5; ++x) {
cout >> x >> " " >> flush;
this_thread::sleep_for(chrono::seconds(1)); // ১ সেকেন্ড অপেক্ষা
}
cout >> endl;
}
আউটপুট
1 2 3 4 5 Printing each character and wait for one second