C語言 文件操作6--文件打開方式詳解


fopen文件打開模式


r代表read的簡寫,+代表可讀可寫,w代表write,b代表bit二進制位,t代表text

r 打開只讀文件,該文件必須存在
r+ 打開可讀可寫的文件,該文件必須存在(這里的寫文件是指將之前的文件覆蓋
rt 打開只讀文本文件,該文本必須存在
rt+ 讀寫打開一個文本文件,允許讀和寫,該文件必須存在(這里的寫文件是指將之前的文件覆蓋
rb 只讀打開一個二進制文件,,該文本必須存在
rb+ 讀寫打開一個文本文件,允許讀和寫,該文件必須存在(這里的寫文件是指將之前的文件覆蓋


w 打開只寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件
w+ 打開可讀寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件(這里的讀文件,同樣需要使用rewind()函數)
wt 打開只寫文本文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件
wt+ 打開可讀寫文本文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件
wb 打開只寫二進制文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件
wb+ 打開可讀寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件


a以附加的方式打開只寫文件,若文件不存在,則建立文件,存在則在文件尾部添加數據,即追加內容
a+以附加的方式打開可讀寫文件,不存在則建立文件,存在則寫入數據到文件尾(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)
at二進制數據的追加,不存在則創建,只能寫。
at+讀寫打開一個文本文件,允許讀或在文本末追加數據(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)
ab二進制數據的追加,不存在則創建,只能寫。
ab+讀寫打開一個二進制文件,不存在則創建,允許讀或在文本末追加數據(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)

 

 

注意點
    在讀取文件時,如果是使用fgets()函數時,讀取文件中的字符串,所以不需要擔心原碼補碼的問題(因為文件本身就是字符串)
而fread()函數直接提取的就是二進制數據時,當把文件從硬盤讀取到內存時,由於系統以補碼方式存儲數據,會導致正數負數之間補碼轉換問題
,該操作將會破壞文件原數據,所以讀取二進制文件時,最好使用unsigned char數組接收數據。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM