檔案IO 換行符問題

2021-10-06 16:01:03 字數 1332 閱讀 6699

ascii表

對於圖1所示檔案("1"加換行符),用uedit對文件進行檢視,如圖2。

圖1用記事本開啟xyz.txt

圖2用uedit開啟xyz.txt

值得注意的是,在不同系統中,對換行符的具體定義不一樣。本文討論的是在windows下的情況,即dos格式。至於如unix格式,換行符就是』\n』。

在文字模式中,會自動進行轉換。如,讀取時將』\r\n』轉換成』\n』。同理,在寫入時會把』\n』轉換成』\r\n』。這個操作巧妙地解決了不同格式之間的問題。但是注意,在二進位制模式中不會轉換,會老老實實地寫出來。因此文字模式的開啟比二進位制模式慢。

如txtbin.c所示。執行結果如圖3和4所示。

//研究文字模式和二進位制模式對於換行符的處理

#include

char stri=

"xyz.txt"

;//檔案內容如圖2.2所示

圖3開啟temp.txt時uedit的報錯

圖4用uedit開啟temp.txt

對於圖3,若選擇「是」,則會變成圖5所示。

圖5用uedit轉換成dos格式後的結果

由此,我們對於dos格式和unix格式也有了乙個更深刻的理解。

檔案io兄弟文章:

【檔案io】eof問題

【檔案io】換行符問題

【檔案io】常用函式詳解

檔案換行符

檔案換行符 dos和windows採用回車 換行 cr lf 而unix linux採用換行符lf,蘋果機 mac os系統 則採用回車符cr.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d lf使用 n 符號表示,ascii 是10,十六制為0x0a.所以windows平...

換行符問題

今天,我總算搞清楚 回車 carriage return 和 換行 line feed 這兩個概念的來歷和區別了。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個...

window git crlf lf 換行符問題

git config global core.autocrlf inputgit config global core.safecrlf true1 autocrlf引數說明 提交時轉換為lf,檢出時轉換為crlf git config global core.autocrlf true 提交時轉換...