很多c++的初學者都以為endl
只是'\n'
換行符的替代者,這是一種片面的看法,因為endl
不僅僅在在輸出流中插入了'\n'
,而且還有重新整理緩衝區的作用。輸入輸出流會把獲取到的資料先存放在緩衝區中,當計算機不忙的時候,會實時地把資料處理掉,這時候'\n'
和endl
沒有什麼太大的區別,當計算機任務繁重的時候,就會預設等到緩衝區被填滿,再一塊處理掉這些資料,這時候endl
就開始發揮作用,它會告訴計算機立即開始處理緩衝區裡的資料。
cout << a ;
cout << b ;
return 0;
比如上面的**,計算機非常繁忙時,它不會執行完第一行就列印出a的值,也不會在執行第二行**時,列印出b的值,計算機會等到執行完最後一行**,程式結束時,或者需要輸出的東西太多,把緩衝區填滿時,才會一起把a
和b
的值同時列印出來。
cout << a << endl;
cout << b << endl;
return 0;
加上endl
以後,不管計算機有多繁忙,它都會立即把緩衝區裡的東西列印出來,清空緩衝區,執行到第一行的時候,就把a
列印出來,執行到第二行的時候,就把b
列印出來。
使用endl
立即清空緩衝區是乙個良好的程式設計習慣,任何時候程式被精確地操作,都比讓計算機自動處理來得穩定和安全,在一些要求極高執行效率的環境下,用'\n'
也是合理的,一切視情況而定。
linux與windows回車換行符的區別
回車 carriage return vs 換行 line feed 在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過...
在Windows與Linux中換行符的區別
時間 2018.11.24 題目 在windows與linux中換行符的區別 linux與windows兩種系統的換行符是不同的,其中linux的換行符時 n,而windows的換行符是 r n。當python 中的open是以 r 模式開啟時,兩者沒有區別,都是顯示 n,而當以二進位制模式 rb ...
C 的多種換行符
winform 中 textbox 的 multiline屬性設定為 true 敲入幾個字元和幾個回車,然後儲存到資料庫,再從資料庫中讀取出來賦值給textbox,換行符丟失。將讀取出的字串中的 n 替換為 r n 解決問題。1 textbox 中換行符為 r n 2 windows 中的換行符 即...