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 sleep
uygulama 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 cin
floşları cout
:
std::string colour;
std::cout << "Enter your favourite colour: ";
std::cin >> colour;