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