国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言文件操作大全

2020-05-23 13:33:48
字體:
供稿:網(wǎng)友

1、文件分為ASCII文件和二進制文件,ASCII文件也稱文本文件,由一系列字符組成,文件中存儲的是每個字符的ASCII碼值。

2、FILE *fp;

FILE是文件類型標識符,是C編譯系統(tǒng)定義好的一個結(jié)構(gòu)體類型,結(jié)構(gòu)體中含有文件名、文件狀態(tài)等信息。
其定義一個指針變量fp,該變量用于指向一個文件,存放的是文件緩沖區(qū)的首地址。

3、文件的打開:fopen();

C語言訪問文件的方式一共有12種。由這幾個關(guān)鍵字組合而成:read,write,append(追加),text(文本文件),banary(二進制文件),+表示讀和寫。

4、文件的關(guān)閉:fclose();

操作系統(tǒng)對打開的文件數(shù)量有限制,當打開的文件過多的時候,文件之間的讀寫會相互影響,所以要及時關(guān)閉不使用的文件。
該函數(shù)正常關(guān)閉文件時返回0,否則-1;

關(guān)閉文件的時候,系統(tǒng)對fp所指向的緩沖區(qū)進行清理,把數(shù)據(jù)輸出到磁盤文件,然后釋放緩沖區(qū)單元,使文件指針與具體文件脫鉤。這樣防止文件丟失、信息被破壞。

但是用C語言操作文件的時候,有時會產(chǎn)生亂碼,這個時候要檢查一下自己的程序,寫入文件的變量有沒有初始化,有沒有正確關(guān)閉文件。當變量沒有初始化的時候,亂碼經(jīng)常表現(xiàn)為“燙燙燙”。

還有一種可能就是文件編碼方式與程序的編碼方式不一致。Windows下的TXT文件都是ANSI編碼方式。注意自己的編譯器編碼方式。

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

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

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

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

總結(jié)

以上所述是小編給大家介紹的C語言文件操作大全,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜平县| 宜宾市| 高邮市| 衡山县| 太湖县| 岳普湖县| 昌都县| 双城市| 饶河县| 若尔盖县| 哈密市| 新平| 桐庐县| 浏阳市| 扶余县| 岐山县| 南康市| 福贡县| 中阳县| 云阳县| 饶河县| 沭阳县| 扬中市| 遵义县| 蓝田县| 敦煌市| 五寨县| 永定县| 临城县| 虞城县| 祁阳县| 雷州市| 长葛市| 武宁县| 广河县| 阳城县| 南靖县| 庆云县| 万盛区| 承德县| 都昌县|