Cevabı aktardınız:
Çıktı arabellekleri, arabelleğin yazılmasını zorlamak için açıkça temizlenebilir.
Diğer bir deyişle, çıktının temeldeki akışa (bir dosya veya listelenen örneklerde bir uçbirim olabilir) yazılmasına neden olmak için "temizlemeniz" gerekebilir.
Genel olarak, stdout / cout satır tamponludur: siz bir satırsonu yazana veya tamponu açıkça temizleyene kadar çıktı işletim sistemine gönderilmez. Bunun avantajı, benzer bir şeyin std::cout << "Mouse moved (" << p.x << ", " << p.y << ")" << endl, altta yatan "dosyaya" altı yerine yalnızca bir yazmaya neden olmasıdır, bu performans için çok daha iyidir. Dezavantajı şudur:
for (int i = 0; i < 5; i++) {
std::cout << ".";
sleep(1);
}
std::cout << "\n";
hemen çıktı verecektir .....(tam sleepuygulama için bu soruya bakın ). Bu gibi durumlarda, << std::flushçıktının görüntülenmesini sağlamak için ek bir tane isteyeceksiniz .
Bunu yapmak için açık bir yıkamaya gerek kalmaması için okuma cinfloşları cout:
std::string colour;
std::cout << "Enter your favourite colour: ";
std::cin >> colour;