

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