行結束符CR LF

2021-10-12 01:22:55 字數 732 閱讀 9245

cr 和 lf 最初是控制電傳印表機(teletype,所以 unix 裡面有個 tty,就是這玩意的縮寫)的,cr 把列印頭移動到行首,lf 把紙上捲一行,因為 cr 要的時間更長,所以一般要求換行的過程裡面都是 cr 在前(有些早期裝置甚至還會在 cr 和 lf 之間插 nul,確保列印頭完成復位,即保證兩個字元發完列印頭一定可以移動到第二行的行頭)。dos 從 dec 和 cp/m 那裡繼承了這個設計,這樣文字檔案的位元組序列可以直接控制印表機。

cr(carriage return),回車符,用符號』\r』表示, 十進位制ascii**是13,16進製制0x0d;

lf(line feed),換行符,用符號』\n』表示,十進位制ascii**是10,16進製制0x0a;

dos和windows 採用回車+換行(cr+lf)表示下一行;

unix/linux 採用換行符(lf)表示下一行;

蘋果機(mac os系統) 則採用回車符(cr)表示下一行;

由於dos風格的換行使用\r\n,把這樣的檔案上傳到unix,有些版本的vi不能識別\r,所以vi顯示時在行尾會出現^m出來,但是有些就能識別\r\n,正常顯示回車換行。

比如,windows下編寫的shell指令碼,直接放到linux/unix下執行會報錯,就是因為行結束符不一樣導致的。

解決: dos2unix [shell指令碼]

檔案結束符

初學c 一道例題 使用者輸入一組數,在輸出資訊中顯示共輸入多少個負數。include using namespace std int main cout 當使用istream物件作為條件,結果是測試流的狀態。如果流是有效的,也就是說,如果讀入下乙個輸入是可能的,那麼測試成功。遇到檔案結束符或遇到無效...

C 檔案結束符

問題描述 windows下 int main string str while cin str cout n end 控制台輸入多個字串後,輸入檔案結束符crtl z,並未使while迴圈結束,該如何跳出while迴圈?解決方法 方法1 回車 ctrl z 回車方法2 改 設定自己的檔案結束符 st...

檔案結束符 End Of File

先看下面的程式 include includeusing namespace std int main ofstream outfile test.txt outfile abcdefg outfile.close char c ifstream infile test.txt while infi...