在計算機還沒有出現之前,有一種叫做電傳打字機(teletype model 33)的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。乙個叫做「回車」,告訴打字機把列印頭定位在左邊界;另乙個叫做「換行」,告訴打字機把紙向下移一行。
這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。
後來,計算機發明了,這兩個概念也就被般到了計算機上。那時,儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加乙個就可以。於是,就出現了分歧。
unix系統裡,每行結尾只有「 《換行》 」,即「\n」;
windows系統裡面,每行結尾是「 《換行》 《回車》 」,即「\n\r」;
mac系統裡,每行結尾是「 《回車》 」。
乙個直接後果是,unix/mac系統下的檔案在windows裡開啟的話,所有文字會變成一行;而windows裡的檔案在unix/mac下開啟的話,在每行的結尾可能會多出乙個^m符號。
換行(\n)就是游標下移一行卻不會移到這一行的開頭,
回車(\r)就是回到當前行的開頭卻不向下移一行.
enter鍵按下後會執行\r\n這樣就是我們看到的一般意義的回車了,所以你用16進製制檔案檢視方式看乙個文字,就會在行尾發現」\r\n」
問題解決:讀取檔案進行了一次替換,保證裡面的換行是\r\n
回車與換行的故事
以前在學彙編的時候,一直不知道老師在換行時,總會打乙個換行符和回車符,原來他們還有這麼乙個故事.在很久以前,有一種叫做電傳打字機 teletype model 33 asr 的機器,那時候還沒有計算機這種玩意。在這種打字機上,有乙個叫carriage的部件,它是打字頭,相當於打字機的游標。每輸入乙個...
細說 回車 和 換行 的故事
最近在php還有c 以及memcache的shell當中經常看到 r n的寫法,剛開始還沒注意,不過後面感覺這樣寫有些不對頭,r表示回車 n表示換行,那這樣不是換行了兩次嗎?為了解決疑惑,問了下度娘,總算對 r n有了新的認識。首先 r 是回車,n 是換行,這毋庸置疑,但是前者的作用只是將游標移到行...
回車與換行
就當乙個科普讀物吧,這幾天看字元裝置還對這個回車和換行還真有點兒搞不清楚。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元...