[[轉帖]]C語言常用文件處理函數
在實際的編程中,經常需要進行文件讀寫的操作。下面是筆者在學習中記錄的一些常有文件處理函數。一、文件的打開與關閉
1、fopen
調用方式:
FILE *fp;
fp=fopen(文件名,使用文件方式);
說明:
(1)、使用文件方式主要有:只讀(r)、只寫(w)、追加(a),還有配合"+"使用的方式,如r+、w+、a+;
(2)、默認打開的文件為文本文件,用't'表示,可以省略。如果打開二進制的文件,則使用'b'。例如:r、rt、rb等。
(3)、如果不能實現打開的任務,則函數返回NULL值。
2、fclose
調用方式:
FILE *fp;
fclose(fp);
說明:
(1)、打開文件后,必須要養成關閉文件的好習慣。
(2)、如果關閉文件出錯,函數返回非零值,否則返回0.可以用ferror函數檢查是否出錯。
二、文件的讀寫
1、fputc
調用方式:
FILE *fp;
char c;
fputc(c,fp);
說明:
(1)、fputc向文件寫入一個字符。
(2)、輸出成功則返回值就是輸出的字符,如果失敗則返回一個EOF。
2、fgetc
調用方式:
FILE *fp;
char c;
c=fgetc(fp);
說明:
(1)、fgetc向文件讀取一個字符。
(2)、函數返回讀取的字符,如果遇到文件結尾,則返回EOF。
(3)、建議使用feof函數來判斷是否文件結束。如果文件結束,函數feof返回值為1,否則為0。
3、fread
調用方式:
fread(buffer,size,count,fp);
說明:
(1)、buffer:是一個指針。對于fread來說明,它是讀入數據的存放地址。對fwrite來說,是要輸出數據的地址。
(2)、size:要讀寫的字節數。可以使用sizeof來獲得字節長度。
(3)、count:要進行讀寫多少個size字的數據項。
(4)、fp:文件指針。
(5)、如果fread或fwrite調用成功,則函數返回值為count的值。
4、fwrite
見fread說明。
5、fprintf和fscanf
調用方式:
fprintf(文件指針,格式字符串,輸出列表);
fscanf(文件指針,格式字符串,輸入列表);
說明:
(1)、在內存與磁盤頻繁交換數據的情況下,建議采用fread和fwrite實現。
三、文件的定位
1、rewind
調用方式:
FILE *fp;
rewind(fp);
說明:
(1)、rewind使文件的位置指針重新定位于文件開頭。
2、fseek
調用方式:
fseek(文件類型指針,位移量,起始點);
說明:
(1)、起始點用0、1、2代替,分別表示文件開始、文件當前位置、文件末尾。
(2)、位移量指起始點為基點,向前移動的字節數。一般為long型。
(3)、fseek常用二進制文件,可以實現隨機讀寫。
3、ftell
調用方式:
FILE *fp;
long i;
i=ftell(fp);
說明:
(1)、函數返回文件當前位置,如果調用出錯則返回值為-1L。
四、出錯的檢測
1、ferror
調用方式:
FILE *fp;
ferror(fp);
說明:
(1)、返回值為0,表示未出錯,返回值為1,表示出錯。
(2)、同一個文件每一次調用輸入輸出函數,均產生一個新 的ferror函數值。
(3)、在執行fopen函數時,ferror函數的初始值自動置為0。
2、clearerr
調用方式:
FILE *fp;
clearerr(fp);
說明:
(1):使文件錯誤標志和文件結束標志為0.