我是一個新手到編程,我開始昨天自學,我已經得到的一切,但我坦率地說,不明白沒有人解釋std :: cout << x;和std :: cout << x << std :: endl;?
std::cout << x;
和
std::cout << x << std::endl;
之間的區別這對我來說,我要求保持安全。
我是一個新手到編程,我開始昨天自學,我已經得到的一切,但我坦率地說,不明白沒有人解釋std :: cout << x;和std :: cout << x << std :: endl;?
std::cout << x;
和
std::cout << x << std::endl;
之間的區別這對我來說,我要求保持安全。
endl
在流中寫入新行,所以後面的輸出將出現在下一行。它也刷新流的緩衝區,通常爲causing a slow-down。
這種沖水意味着99%的時間,endl
是一個錯誤,你應該只寫"\n"
(或'\n'
)。當你真的要刷新流,我覺得這是更好地做出明確的通過調用std::flush
代替:
std::cout << x << '\n' << std::flush;
至於運行時的動作推移,這相當於用std::endl
,但在以下方面使你的意圖明確,這是顯着優越。
只是一個觀察,可能會幫助一些讀者:如果你想輸出某種提示方式,比如'std :: cout <<「,輸入你的名字:」;',你不需要使用'endl'或'flush',然後再嘗試從'std :: cin'輸入,因爲它們是「綁定」流並自動處理。 –
std::endl
向流中添加換行代碼並刷新輸出緩衝區,std::cout << x
只是打印x
。 所以,如果你有一個代碼
cout << 5;
cout << 5;
這將是
爲輸出,但如果添加一個endl
第一cout
輸出將是
我真的建議你是用'\n'
它比ENDL好過得多。
「我真的建議你使用'\ n'它比endl好得多」 更好的是什麼?性能?還有什麼? – KABoissonneault
性能還不夠嗎? –
當我得到它是免費的,這是很好的。如果可以引入其他問題,我寧願避免它。儘管說實話,我個人使用'printf'來封裝日誌而不是流 – KABoissonneault
對於[進一步閱讀](http://stackoverflow.com/q/213907/5583153) – Nacho
[這是我的回答](http://stackoverflow.com/a/29701830/1938163)也可能有助於理解潛力影響 –