C語(yǔ)言文件操作大全
1、文件分為ASCII文件和二進(jìn)制文件,ASCII文件也稱(chēng)文本文件,由一系列字符組成,文件中存儲(chǔ)的是每個(gè)字符的ASCII碼值。
2、FILE *fp;
FILE是文件類(lèi)型標(biāo)識(shí)符,是C編譯系統(tǒng)定義好的一個(gè)結(jié)構(gòu)體類(lèi)型,結(jié)構(gòu)體中含有文件名、文件狀態(tài)等信息。
其定義一個(gè)指針變量fp,該變量用于指向一個(gè)文件,存放的是文件緩沖區(qū)的首地址。
3、文件的打開(kāi):fopen();
C語(yǔ)言訪問(wèn)文件的方式一共有12種。由這幾個(gè)關(guān)鍵字組合而成:read,write,append(追加),text(文本文件),banary(二進(jìn)制文件),+表示讀和寫(xiě)。
4、文件的關(guān)閉:fclose();
操作系統(tǒng)對(duì)打開(kāi)的文件數(shù)量有限制,當(dāng)打開(kāi)的文件過(guò)多的時(shí)候,文件之間的讀寫(xiě)會(huì)相互影響,所以要及時(shí)關(guān)閉不使用的文件。
該函數(shù)正常關(guān)閉文件時(shí)返回0,否則-1;
關(guān)閉文件的時(shí)候,系統(tǒng)對(duì)fp所指向的緩沖區(qū)進(jìn)行清理,把數(shù)據(jù)輸出到磁盤(pán)文件,然后釋放緩沖區(qū)單元,使文件指針與具體文件脫鉤。這樣防止文件丟失、信息被破壞。
但是用C語(yǔ)言操作文件的時(shí)候,有時(shí)會(huì)產(chǎn)生亂碼,這個(gè)時(shí)候要檢查一下自己的程序,寫(xiě)入文件的變量有沒(méi)有初始化,有沒(méi)有正確關(guān)閉文件。當(dāng)變量沒(méi)有初始化的時(shí)候,亂碼經(jīng)常表現(xiàn)為“燙燙燙”。
還有一種可能就是文件編碼方式與程序的編碼方式不一致。Windows下的TXT文件都是ANSI編碼方式。注意自己的編譯器編碼方式。
r代表read的簡(jiǎn)寫(xiě),+代表可讀可寫(xiě),w代表write,b代表bit二進(jìn)制位,t代表text
r 打開(kāi)只讀文件,該文件必須存在
r+ 打開(kāi)可讀可寫(xiě)的文件,該文件必須存在(這里的寫(xiě)文件是指將之前的文件覆蓋
rt 打開(kāi)只讀文本文件,該文本必須存在
rt+ 讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀和寫(xiě),該文件必須存在(這里的寫(xiě)文件是指將之前的文件覆蓋
rb 只讀打開(kāi)一個(gè)二進(jìn)制文件,,該文本必須存在
rb+ 讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀和寫(xiě),該文件必須存在(這里的寫(xiě)文件是指將之前的文件覆蓋
w 打開(kāi)只寫(xiě)文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件
w+ 打開(kāi)可讀寫(xiě)文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件(這里的讀文件,同樣需要使用rewind()函數(shù))
wt 打開(kāi)只寫(xiě)文本文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件
wt+ 打開(kāi)可讀寫(xiě)文本文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件
wb 打開(kāi)只寫(xiě)二進(jìn)制文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件
wb+ 打開(kāi)可讀寫(xiě)文件,若文件存在,則文件長(zhǎng)度清零,即文件內(nèi)容會(huì)消失,若文件不存在則建立該文件
a以附加的方式打開(kāi)只寫(xiě)文件,若文件不存在,則建立文件,存在則在文件尾部添加數(shù)據(jù),即追加內(nèi)容
a+以附加的方式打開(kāi)可讀寫(xiě)文件,不存在則建立文件,存在則寫(xiě)入數(shù)據(jù)到文件尾(這里的讀文件,同樣需要使用rewind()函數(shù),但是寫(xiě)文件不需要rewind()函數(shù),a是追加)
at二進(jìn)制數(shù)據(jù)的追加,不存在則創(chuàng)建,只能寫(xiě)。
at+讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀或在文本末追加數(shù)據(jù)(這里的讀文件,同樣需要使用rewind()函數(shù),但是寫(xiě)文件不需要rewind()函數(shù),a是追加)
ab二進(jìn)制數(shù)據(jù)的追加,不存在則創(chuàng)建,只能寫(xiě)。
ab+讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,不存在則創(chuàng)建,允許讀或在文本末追加數(shù)據(jù)(這里的讀文件,同樣需要使用rewind()函數(shù),但是寫(xiě)文件不需要rewind()函數(shù),a是追加)
總結(jié)
以上所述是小編給大家介紹的C語(yǔ)言文件操作大全,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
欄 目:C語(yǔ)言
下一篇:C語(yǔ)言統(tǒng)計(jì)一篇英文短文中單詞的個(gè)數(shù)實(shí)例代碼
本文標(biāo)題:C語(yǔ)言文件操作大全
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/857.html
您可能感興趣的文章
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用函數(shù)刪除字符
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)式函數(shù)庫(kù)
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段函數(shù)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排序法函數(shù)
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段函數(shù)
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎么打出三角函數(shù)的值
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求階乘


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文