我學會了在cout語句結束時使用endl來刷新緩衝區的難題。我感到困惑的是,爲什麼endl只是有時候是必要的。通常我可以做cout <<「text」只顯示部分時間
cout << "test";
它會顯示測試。但是在一個很長的控制檯程序中間,我會有一個類似的cout語句,並且不會顯示任何內容,代碼也不會繼續。添加endl到最後通過刷新緩衝區並顯示文本來解決問題。但是什麼導致緩衝區在某些情況下被自動刷新並在其他情況下手動刷新?我無法提供任何示例代碼,因爲我不知道如何重現問題,但我認爲大部分人都看到了這一點。
大多數庫都在換行符「\ n」中刷新,所以如果以此結束,則不需要'endl'。如果你不想換行,你也可以使用'flush'。 –