【回車、換行】總結(jié)
<回車>:C語言里為 \r; ASCII碼為0D;符號表示為CR,Carriage
Return
<換行>:C語言里為 \n; ASCII碼為0A;符號表示為LF,Line Feed
一、
現(xiàn)狀
Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“\n”;
Windows系統(tǒng)里面,每行結(jié)尾是“<回車><換行>”,即“\r\n”;
Mac系統(tǒng)里,每行結(jié)尾是“<回車>” ,即“\r”;
二、
影響
1. 直接表現(xiàn)
Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會多出一個^M符號
2. Windows下的讀寫
向文件中寫入”\n”。
² 使用fopen("test1.txt","w"),為2個字節(jié)(0D 0A)。
² 使用fopen("test2.txt","wb"),為1個字節(jié)(0A)
² 使用CreateFile("test3.txt",
GENERIC_WRITE, …),為1個字節(jié)(0A)
從文件中讀(0D 0A)
² 使用fopen("test1.txt","r"),為1個字節(jié)(0A)。
² 使用fopen("test2.txt","rb"),為2個字節(jié)(0D 0A)
² 使用CreateFile("test3.txt",
GENERIC_READ, …),為2個字節(jié)(0D 0A)
3. 根據(jù)’\n’劃分串時,需要注意
對于使用fopen("test2.txt","rb")
和 CreateFile("test3.txt", GENERIC_READ, …) 進(jìn)行讀取的情況,需要注意(0D
0A)(即多一個0D)的影響。
4. 其他
待補(bǔ)充…
三、
編輯工具的相關(guān)使用
1. Nodepad++
如何顯示CR、LF: 【視圖】 -> 【顯示行尾符】 或者 【顯示所有字符】。
設(shè)置默認(rèn)回車鍵格式: 【格式】-> 【轉(zhuǎn)換為Windows格式】 或者 【轉(zhuǎn)換為Unix】 或者 【轉(zhuǎn)換為Mac格式】
2. Ultra Edit
【高級】-> 【配置】->[文本處理]
->[DOS/UNIX|MAC處理]
四、
來源
在計(jì)算機(jī)還沒有出現(xiàn)之前,有一種叫做電傳打字機(jī)(Teletype Model 33)的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個字符將丟失。
于是,研制人員想了個辦法解決這個問題,就是在每行后面加兩個表示結(jié)束的字符。一個叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個叫做“換行”,告訴打字機(jī)把紙向下移一行。
這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。
后來,計(jì)算機(jī)發(fā)明了,這兩個概念也就被般到了計(jì)算機(jī)上。那時,存儲器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個字符太浪費(fèi)了,加一個就可以。于是,就出現(xiàn)了分歧。
Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“\n”;Windows系統(tǒng)里面,每行結(jié)尾是“<換行><回車>”,即“\n\r”;Mac系統(tǒng)里,每行結(jié)尾是“<回車>”。一個直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會多出一個^M符號。
參考地址:http://hi.baidu.com/xsf1415/blog/item/cd2879eeea8c6d3f2cf53442.html
@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
posted on 2011-10-31 18:25
longshen 閱讀(871)
評論(0) 編輯 收藏 引用