C語(yǔ)言具有操作文件的能力,比如打開(kāi)文件、讀取和追加數(shù)據(jù)、插入和刪除數(shù)據(jù)、關(guān)閉文件、刪除文件等。
一、文件操作函數(shù)有
**1.文件的打開(kāi)操作 **
fopen 打開(kāi)一個(gè)文件
2.文件的關(guān)閉操作
fclose 關(guān)閉一個(gè)文件
3.文件的讀寫操作
fgetc 從文件中讀取一個(gè)字符
fputc 寫一個(gè)字符到文件中去
fgets 從文件中讀取一個(gè)字符串
fputs 寫一個(gè)字符串到文件中去
fprintf 往文件中寫格式化數(shù)據(jù)
fscanf 格式化讀取文件中數(shù)據(jù)
fread 以二進(jìn)制形式讀取文件中的數(shù)據(jù)
fwrite 以二進(jìn)制形式寫數(shù)據(jù)到文件中去
getw 以二進(jìn)制形式讀取一個(gè)整數(shù)
putw 以二進(jìn)制形式存貯一個(gè)整數(shù)
4.文件狀態(tài)檢查函數(shù)
feof 文件結(jié)束
ferror 文件讀/寫出錯(cuò)
clearerr 清除文件錯(cuò)誤標(biāo)志
ftell 了解文件指針的當(dāng)前位置
5.文件定位函數(shù)
rewind 反繞
fseek 隨機(jī)定位
二、fopen函數(shù)
1.函數(shù)形式
FILE *fopen(char *pname,char *mode)
2.參數(shù)說(shuō)明
pname:是一個(gè)字符指針,它將指向要打開(kāi)或建立的文件的文件名字符串。
mode:是一個(gè)指向文件處理方式字符串的字符指針。
![1NF6KU`C452I7KTQ9]OQMN0.png](https://upload-images.jianshu.io/upload_images/18945157-f6b1c3da439c878c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.函數(shù)功能
按照 mode 規(guī)定的方式,打開(kāi)由 pname 指向的文件。若找不到由 pname 指向的相應(yīng)文件,會(huì)有兩種結(jié)果:
(1) 此時(shí)如果 mode 規(guī)定按“寫(w)”方式打開(kāi)文件,就按由 pname 指定的名字建立一個(gè)新文件;
(2) 此時(shí)如果 mode 規(guī)定按“讀(r)”方式打開(kāi)文件,就會(huì)返回一個(gè)錯(cuò)誤。
4.實(shí)例
//定義一個(gè)名叫fp文件指針
FILE *fp;
//判斷按讀方式打開(kāi)一個(gè)名叫test的文件是否失敗
if((fp=fopen("demo","r")) == NULL)//打開(kāi)操作不成功
{
printf("此文件不能打開(kāi)!.\n");
exit(1);//結(jié)束程序的執(zhí)行
}
三、fclose函數(shù)
1.函數(shù)定義
int fclose(FILE *fp);
2.參數(shù)說(shuō)明
fp:一個(gè)已打開(kāi)文件的文件指針。
3. 返回值
正常返回:0。
異常返回:EOF,表示文件在關(guān)閉時(shí)發(fā)生錯(cuò)誤。
四、fgets() ;從文件中讀取一個(gè)字符串
1.函數(shù)定義
char *fgets(char *str, int n, FILE *fp)
2.函數(shù)說(shuō)明
由fp指出的文件中讀取n-1個(gè)字符,并把他們存放到有str指出的字符數(shù)組中區(qū),最后加上一個(gè)由字符串結(jié)束符''
3.參數(shù)說(shuō)明
str:接受字符串的內(nèi)存地址,可以是數(shù)組別名,也可以是指針。
n:指出要讀取的字符的個(gè)數(shù)。
fp:這個(gè)是文件指針,指出要從中讀取字符的文件。
4.返回值
正常返回:字符串的內(nèi)存首地址,即str的值。
異常返回:返回一個(gè)NULL值,此時(shí)應(yīng)當(dāng)用feof()或ferror()函數(shù)來(lái)判別是讀取到了文件尾,還是發(fā)生了錯(cuò)誤。
五、fputs();寫入字符串到文件中去
1.函數(shù)定義
int fputs(char *str,FILE *fp)
2.函數(shù)說(shuō)明
把由str指出的字符串寫入到fp所指的文件中去。
3.參數(shù)說(shuō)明
str:指出要寫到文件中去的字符串。
fp:這是個(gè)文件指針,指出字符串要寫入其中的文件。
4.返回值
正常返回:寫入到的文件的字符個(gè)數(shù),即字符串的長(zhǎng)度
異常返回:返回一個(gè)NULL值,此時(shí)應(yīng)當(dāng)用feof()或ferror()函數(shù)來(lái)判別是讀取到了文件尾,還是發(fā)生了錯(cuò)誤。