c語言檔案操作的乙個問題:
c語言中開啟檔案有兩種方式,一種是二進位制方式,另一種是文字方式(ascii碼方式)。這兩種方式有什麼區別?(對於linux這種只有一種檔案型別的作業系統來說是沒有區別的)
我們就以windows為例說說區別:
a.以文字方式開啟檔案,若將資料寫入檔案,如果遇到換行符'\n'(asii 值為10,0a),則會轉換為回車—換行'\r\n'(ascii值為13,10,0d0a)存入到檔案中,同樣讀取的時候,若遇到回車—換行,即連續的ascii值13,10,則自動轉換為換行符。
而以二進位制方式開啟檔案時,不會進行這樣的處理。
b.還有如果以文字方式開啟檔案時,若讀取到ascii碼為26(^z)的字元即0x1a,則停止對檔案的讀取,會預設為檔案已結束,而以二進位制方式讀取時不會發生這樣的情況。由於正常情況下我們手動編輯完成的檔案是不可能出現ascii碼為26的字元,所以可以用feof函式去檢測檔案是否結束。
所以,由於存在上面的兩個區別,我們在明確檔案型別的時候,最好使用相對應的方式對檔案進行開啟。對於那些不明確檔案型別的時候,最好使用二進位制方式開啟檔案。
以二進位制和文字的方式讀寫檔案
文字方式開啟的檔案具有一定的格式,說明讀取時是要按照一定的編碼規範來讀取的,而二進位制方式讀取是直接從檔案中讀取包含0,1的二進位製流,沒有任何格式。因此,fread讀取以文字方式開啟的檔案時,等於是讀取了包含格式的二進位製流,因此會出錯。字元是乙個二進位制資料的特殊表現形式,它仍是資料 字元 a ...
C語言採用文字方式和二進位制方式開啟檔案的區別分析
投稿 shichen2014 字型 增加 稍微了解c程式設計的人都知道,文字檔案和二進位制檔案在計算機上面都是以0,1儲存的,那麼兩者怎麼還存在差別呢?對於程式設計人員來說,文字檔案和二進位制檔案就是乙個宣告,指明了你應該以什麼方式 文字方式 二進位制 開啟這個檔案,用什麼函式讀寫這個檔案 讀寫函式...
C語言文字方式和二進位制方式開啟檔案區別
我們都知道,文字檔案和二進位制檔案在計算機上面都是以0,1儲存的,那麼兩者怎麼還存在差別呢?我覺得,對於程式設計人員,文字檔案和二進位制檔案就是乙個宣告,指明了你應該以什麼方式 文字方式 二進位制 開啟這個檔案,用什麼函式讀寫這個檔案 讀寫函式 怎麼判斷讀到這個檔案結尾。具體的說 1。以哪種方式開啟...