什麼是文字檔案,什麼是二進位制檔案?
在windows和dos系統中,狹義的文字檔案是指擴充套件名為txt的檔案。
實際上,那些沒有格式的,由可理解的ascii以及其他編碼文字組成的檔案都是文字檔案,
如c原始檔,html超文字檔案,xml。除此之外的其他檔案都是二進位制檔案,如word檔案doc,影象格式檔案jpg。
但是就所謂使用fopen函式開啟文字檔案與二進位制檔案的說法並不準確,正確的說法應該:
以文字方式和二進位制方式開啟檔案。因為我們用兩種方式都可以開啟任意的檔案。即使這樣,為什麼還要區分 兩種方式呢?
這是因為這兩種方式在讀寫檔案時的操作是不一樣的。
二進位制方式很簡單,讀檔案時,會原封不動的讀出檔案的全部內容,寫的時候,也是把內
存緩衝區的內容原封不動的寫到檔案中。而文字方式就不一樣了,在讀檔案時,會將換行符crlf(0x0d 0x0a)全部換成單個的0x0a,並且當遇到結束符ctrlz(0x1a)時,就認為檔案應經結束。相應的,寫檔案時,會將所有的0x0a換成0x0d 0x0a.
所以,若使用文字方式開啟二進位制檔案時,就很容易出現檔案讀不完整,或內容不對的錯誤,即使是用文字方式開啟文字檔案,也要慎重使用,比如複製檔案,就不應該使用文字方式。要特別注意的是,上面這樣的說法僅適應於dos和windows系統,在unix和其他一些系統中,沒有文字方式和二進位制方式的區分,是不是用『b』標誌是一樣的,這是由於不同的作業系統對文字檔案換行符的定義,和c語言中換行符的定義有所不同造成的。
當初c是在unix上發展的,對於unix的定義和c語言自然是一樣的,其後在c被引入到dos系統,為了使原有的c程式能不加修改的讀寫dos文字檔案,所以就在檔案讀寫上做了修改。
文字檔案與二進位制檔案
從本質上說所有檔案都是二進位制檔案,文字i o是在二進位制i o基礎上提供的一層抽象,它封裝了字元的編碼和解碼過程。在文字i o中自動進行編碼與解碼。在windows和dos系統中,狹義的文字檔案是指擴充套件名為txt的檔案。實際上,那些沒有規定格式的,由可理解的的ascii以及其它編碼文字組成的檔...
文字檔案與二進位制檔案
維基百科 二進位制檔案一般指包含ascii及擴充套件ascii字元中編寫的資料或程式指令的檔案。廣義的二進位制檔案即為檔案,由檔案在外部儲存裝置的存放方式為二進位制而得名。狹義的二進位制檔案即指除文字檔案以外的檔案。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編...
文字檔案與二進位制檔案
這裡談談文字檔案與二進位制檔案以及c語言讀寫這兩種檔案的標準介面。具體到物理儲存時都是二進位制的,關鍵是儲存前對資料的編碼有區別。文字檔案與二進位制檔案在計算機檔案系統中的物理儲存都是二進位制的,也就是在物理儲存方面沒有區別都是01碼,這個沒有異議,他們的區別主要在邏輯儲存上,也就是編碼上。文字檔案...