c++ 關於換行符


windows: \r\n

linux:   \n

mac:   \r

 

http://blog.chinaunix.net/uid-12706763-id-10830.html

不同的OS有不同的換行符:
OS 換行符 漢字碼
UNIX LF JIS, EUC, (ShiftJIS)
Windows CR+LF ShiftJIS
Macintosh CR ShiftJIS
 
下面列出了各個系統之間的變換關系:

UNIX => Windows
% perl -pe 's/\n/\r\n/' unixfile > winfile

UNIX => Macintosh
% perl -pe 's/\n/\r/' unixfile > macfile
Win => UNIX
% perl -pe 's/\r\n/\n/' winfile > unixfile
Windows => Macintosh
% perl -pe 's/\r\n/\r/' winfile > macfile

Macintosh => UNIX
% perl -pe 's/\r/\n/g' macfile > unixfile

Macintosh => Windows
% perl -pe 's/\r/\r\n/g' macfile > winfile

在文本處理中, CR, LF, CR/LF是不同操作系統上使用的換行符.
Dos和windows采用回車+換行CR/LF表示下一行,
而UNIX/Linux采用換行符LF表示下一行,
蘋果機(MAC OS系統)則采用回車符CR表示下一行.
CR用符號'\r'表示, 十進制ASCII代碼是13, 十六進制代碼為0x0D;
LF使用'\n'符號表示, ASCII代碼是10, 十六制為0x0A.
所以Windows平台上換行在文本文件中是使用 0d 0a 兩個字節表示, 而UNIX和蘋果平台上換行則是使用0a或0d一個字節表示.
一般操作系統上的運行庫會自動決定文本文件的換行格式. 如一個程序在windows上運行就生成CR/LF換行格式的文本文件,而在Linux上運行就生成LF格式換行的文本文件.
在一個平台上使用另一種換行符的文件文件可能會帶來意想不到的問題, 特別是在編輯程序代碼時. 有時候代碼在編輯器中顯示正常, 但在編輯時卻會因為換行符問題而出錯.
很多文本/代碼編輯器帶有換行符轉換功能, 使用這個功能可以將文本文件中的換行符在不同格式單互換.
在不同平台間使用FTP軟件傳送文件時, 在ascii文本模式傳輸模式下, 一些FTP客戶端程序會自動對換行格式進行轉換. 經過這種傳輸的文件字節數可能會發生變化. 如果你不想ftp修改原文件, 可以使用bin模式(二進制模式)傳輸文本.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM