आपने उत्तर उद्धृत किया है:
बफर को लिखे जाने के लिए आउटपुट बफ़र्स को स्पष्ट रूप से फ्लश किया जा सकता है।
यही है, आपको आउटपुट को "फ्लश" करने की आवश्यकता हो सकती है, जिससे इसे अंतर्निहित स्ट्रीम में लिखा जा सकता है (जो कि एक फ़ाइल हो सकती है, या सूचीबद्ध टर्मिनल में)।
आम तौर पर, stdout / cout लाइन-बफ़र्ड होता है: जब तक आप एक नई लाइन नहीं लिखते या बफर को फ्लश नहीं करते हैं, तब तक आउटपुट ओएस को नहीं भेजा जाता है। फायदा यह है कि ऐसा कुछ std::cout << "Mouse moved (" << p.x << ", " << p.y << ")" << endl
होता है, जो छह के बजाय केवल एक "अंतर्निहित" फ़ाइल को लिखता है, जो प्रदर्शन के लिए बहुत बेहतर है। नुकसान यह है कि एक कोड की तरह:
for (int i = 0; i < 5; i++) {
std::cout << ".";
sleep(1); // or something similar
}
std::cout << "\n";
.....
एक बार में उत्पादन होगा (सटीक sleep
कार्यान्वयन के लिए, यह प्रश्न देखें )। ऐसे मामलों में, आप यह << std::flush
सुनिश्चित करने के लिए एक अतिरिक्त चाहेंगे कि आउटपुट प्रदर्शित हो।
cin
फ्लश पढ़ना cout
इसलिए आपको ऐसा करने के लिए एक स्पष्ट फ्लश की आवश्यकता नहीं है:
std::string colour;
std::cout << "Enter your favourite colour: ";
std::cin >> colour;