Linux和windows中的换行符差异问题 LINUX的换行符在Windows记事本打开不换行或出现黑点
http://hi.baidu.com/mayongl7/blog/item/06e61af7c719053a730eec4d.html
?
| LINUX的換行符在Windows記事本打開不換行或出現黑點 是由于Linux和windows中的換行符差異問題造成的。 首先來看回車符號和換行符號產生背景 關于“回車”(carriage return)和“換行”(line feed)這兩個概念的來歷和區別。 windows創建的文件是 \n\r結束的, 而linux,mac這種unix類系統是\n結束的。 所以unix的文本到windows會出現換行丟失(ultraedit這種軟件可以正確識別); 而反過來就會出現^M的符號了 Windows等操作系統用的文本換行符和UNIX/Linux操作系統用的不同,Windows系統下輸入的換行符在UNIX/Linux下不會顯示為“換行”,而是顯示為 ^M 這個符號(這是Linux等系統下規定的特殊標記,占一個字符大小,不是 ^ 和 M 的組合,打印不出來的)。Linux下很多文本編輯器(命令行)會在顯示這個標記之后,補上一個自己的換行符,以避免內容混亂(只是用于顯示,補充的換行符不會寫入文件,有專門的命令將Windows換行符替換為Linux換行符)。 UNIX/Linux系統下的換行符在Windows系統的文本編輯器中會被忽略,整個文本會亂成一團。
windows換行是\r\n,十六進制數值是:0D0A。
linux下刪除windows換行符^M OJ判題時發現一個問題:用%c讀入的代碼都會報wa。后來發現跟scanf有關。在linux下使用%c會讀到\n和\r兩個字符。所以需要將^M(也就是\r)字符刪掉 |
unix 下換行符只有: \r
Dos 下換行符有:\r\n
具體的, \r的ascii 碼是:14
\n的ascii 碼是:10
?
總結
以上是生活随笔為你收集整理的Linux和windows中的换行符差异问题 LINUX的换行符在Windows记事本打开不换行或出现黑点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打印机提示服务器状态未知,win7打印机
- 下一篇: 超级终端secureCRT-下载及使用