

#產(chǎn)生的歷史原因:
二戰(zhàn)中,出現(xiàn)了電傳打字機(jī)。
這種打字機(jī)是機(jī)械式針頭,每秒只能打印10個字符,當(dāng)針頭跑完第一行,從最右邊下移到第2行的最左邊時,需要耗時0.2秒,從而導(dǎo)致會丟失2個字符。
于是,研制人員想了一個辦法:在每行后面加兩個表示結(jié)束的字符,目的就是解決這個0.2秒的延遲問題
1)一個字符是: 回車(\r):CR(Carriage Return的縮寫,Ascii碼是13),告訴打字機(jī)需要“把打印頭定位在行首”;
2)一個字符是: 換行(\n):LF(Line Feed的縮寫,Ascii碼是10),告訴打字機(jī)“把打印紙向下移動一行”;
ntenteditable="false" style="border: 0px; max-width: 100%;" width="676" height="501" alt="" />
二戰(zhàn)中美國使用的打字機(jī)
# 業(yè)界現(xiàn)狀:
電子計算機(jī)問世后,這兩個概念也同時被引入。
因為存儲器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個字符太浪費了,加一個就夠了。
從此,計算機(jī)界就出現(xiàn)了分歧。
微軟Windows系統(tǒng):每行結(jié)尾有“<回車><換行>”,即“\r\n”
Unix/Linux系統(tǒng): 每行結(jié)尾只有“<換行>”,即"\n"
蘋果Mac系統(tǒng): 每行結(jié)尾只有“<回車>”,即"\r"
由此產(chǎn)生的后果是:
Unix/Linux/Mac系統(tǒng)生成的文本文件,當(dāng)在Windows里打開時,會變成一行;
而Windows文件在Unix/Linux/Mac系統(tǒng)下打開時,會在每行的結(jié)尾會多出一個^M符號。