c 關於換行符

2021-09-07 00:08:26 字數 1364 閱讀 3106

windows: \r\n

linux:   \n

mac:   \r

不同的os有不同的換行符: os

換行符漢字碼

unix

lfjis, euc, (shiftjis)

windows

cr+lf

shiftjis

macintosh

crshiftjis

下面列出了各個系統之間的變換關係:

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模式(二進位制模式)傳輸文字.

C 中換行符

1 控制符endl cout endl是乙個特殊的c 符號,表示乙個重要的概念 重起一行。在輸出流中插入endl將導致螢幕游標移到下一行開頭。諸如endl等對於cout來說有特殊含義的特殊符號被稱作控制符。和cout一樣,endl也 是在標頭檔案iostream中定義的,且位於命名空間std中。2 ...

Linux換行符和Windows換行符的區別與轉換

windows為乙個回車 r cr或 m 和乙個換行 n nl或lf 括號內是其它顯示方法 linux為乙個換行 n mac為乙個回車 r 檢視檔案是否含有windows換行符 windows notepad 檢視 顯示所有符號 linux file test.txt test.txt ascii ...

C 的多種換行符

winform 中 textbox 的 multiline屬性設定為 true 敲入幾個字元和幾個回車,然後儲存到資料庫,再從資料庫中讀取出來賦值給textbox,換行符丟失。將讀取出的字串中的 n 替換為 r n 解決問題。1 textbox 中換行符為 r n 2 windows 中的換行符 即...