1
我想知道每次使用cout
時輸出緩衝區是否自動刷新和清空。 如果沒有刷新,有什麼辦法可以「檢查輸出緩衝區的內容」嗎? 我指的是您只使用cout
而不涉及endl
的情況。使用cout時輸出緩衝區是否自動刷新?
考慮下面的代碼:
cout << "Hello, how are you?"; //Without using endl
我用字符串流檢查如何沖洗影響緩衝。我有以下代碼,但爲什麼輸出仍顯示「GoodDay」,即使我已經刷新了它?
string str;
stringstream ss;
ss << "GoodDay";
ss << flush;
ss >> str;
cout << str;
如果您使用'std :: endl'或寫入更多的緩衝輸出實際上可以容納,它是刷新是的。至於你關於檢查內容的問題,可能會看看['std :: ios_base :: register_callback'](http://en.cppreference.com/w/cpp/io/ios_base/register_callback)是有用的。 [我的答案在這裏](http://stackoverflow.com/questions/22263636/fstream-c-automatic-line-addition/22263699#22263699)也可能會給你一些見解。 –
因此,如果我不使用std :: endl,並且不要寫超過緩衝輸出可以容納的數據,那麼當我使用cout時,輸出緩衝區是否仍然會被刷新?感謝您的回覆。 – user3347939
_'當我使用cout時,輸出緩衝區仍然會被刷新嗎?'_Nope ... –