\n \r 換行回車的區別 2018-10-30

參考:
http://blog.chinaunix.net/uid-12038475-id-3766827.html
http://www.javashuo.com/article/p-klsxiydf-ho.htmlhtml

1.定義

回車:\r , 即 Carriage Return,控制字符能夠寫成 CR, 做用是將光標從新回到本行開頭 ^M 是ascii中的'\r', 回車符,是16進制的0x0D,八進制的015,十進制的13;^M在vi編輯器中能夠使用Ctrl+ v + m三個鍵打出來
換行:\n , 即 New line,控制字符能夠寫成LF,即 line feed,即光標移到下一行(這個操做是直接往下一行,不回到行首);其ascii代碼是10,十六進制爲0x0Awindows

2. 三大系統關於 換行 這一動做的區別:

  • Windows使用兩個字符\r\n( 0x0D 和 0x0A )表示,即回到行首和下一行兩個動做來實現換行
  • Unix系統裏,只使用一個字符\n來實現換行,即一個字符實現上面兩個動做
  • Mac系統中,只使用一個字符\r來實現換行,即一個字符實現上面2個動做。
    這樣形成的後果是,Mac/Unix系統下面的文件在Windows下面打開時,因爲Mac/Unix系統只有一個字符來表示換行,所以,會致使全部文件都出如今一行;而windows裏的文件在Unix下打開,在每行的結尾會多出一個 ^M 字符

3. 歷史:

在計算機尚未出現之 前,有一種叫作電傳打字機(Teletype Model 33,Linux/Unix下的tty概念也來自於此)的玩意,每秒鐘能夠打10個字符。可是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正 好能夠打兩個字符。要是在這0.2秒裏面,又有新的字符傳過來,那麼這個字符將丟失。
因而,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字符。一個叫作「回車(return)」,告訴打字機把打印頭定位在左邊界;另外一個叫作「換行(newline)」,告訴打字機把紙向下移一行。這就是「換行」和「回車」的來歷編輯器

相關文章
相關標籤/搜索