字元讀寫函數 :fgetc和fputc
字串讀寫函數:fgets和fputs
資料區塊讀寫函數:freed和fwrite
格式化讀寫函數:fscanf和fprinf
1.字元讀寫:
fgetc函數的功能是從指定的檔案中讀一個字元,函數調用的形式為:
字元變數=fgetc(檔案指標);
fputc函數的功能是把一個字元寫入指定的檔案中,函數調用的形式為:
fputc(字元量,檔案指標);
2.字串讀寫
讀字串函數fgets
函數的功能是從指定的檔案中讀一個字串到字元數組中,函數調用的形式為:
fgets(字元數組名,n,檔案指標);
寫字串函數fputs
fputs函數的功能是向指定的檔案寫入一個字串,其調用形式為:
fputs(字串,檔案指標);
3.資料區塊讀寫
讀資料區塊函數調用的一般形式為:
fread(buffer,size,count,fp);
寫資料區塊函數調用的一般形式為:
fwrite(buffer,size,count,fp);
4.格式化讀寫
fscanf函數,fprintf函數與前面使用的scanf和printf函數的功能相似,都是格式化讀寫函數。兩者的區別在於fscanf函數和fprintf函數的讀寫對象不是鍵盤和顯示器,而是磁碟檔案。
這兩個函數的調用格式為:
fscanf(檔案指標,格式字串,輸入表列);
fprintf(檔案指標,格式字串,輸出表列);
檔案定位
移動檔案內部位置指標的函數主要有兩個,即rewind函數和fseek函數。
rewind函數前面已多次使用過,其調用形式為:
rewind(檔案指標);
它的功能是把檔案內部的位置指標移到檔案首。
下面主要介紹fseek函數。fseek函數用來移動檔案內部位置指標,其調用形式為:
fseek(檔案指標,位移量,起始點);
其中:
“檔案指標”指向被移動的檔案。
“位移量”表示移動的位元組數,要求位移量是long型資料,以便在檔案長度大於64KB時不會出錯。當用常量表示位移量時,要求加尾碼“L”。
“起始點”表示從何處開始計算位移量,規定的起始點有三種:檔案首,當前位置和檔案尾。其表示方法如下表。
起始點 表示符號 數字表示
檔案首 SEEK_SET 0
當前位置 SEEK_CUR 1
檔案末尾 SEEK_END 2
例如:
fseek(fp,100L,0);
其意義是把位置指標移到離檔案首100個位元組處。
還要說明的是fseek函數一般用於二進位檔案。在文字檔中由於要進行轉換,故往往計算的位置會出現錯誤。
c語言中常用的檔案檢測函數有以下幾個。
檔案結束檢測函數feof函數
調用格式:
feof(檔案指標);
功能:判斷檔案是否處於檔案結束位置,如檔案結束,則傳回值為1,否則為0。
讀寫檔案出錯檢測函數
ferror函數調用格式:
ferror(檔案指標);
功能:檢查檔案在用各種輸入輸出函數進行讀寫時是否出錯。如ferror傳回值為0表示未出錯,否則表示有錯。
檔案出錯標誌和檔案結束標誌置0函數
clearerr函數調用格式:
clearerr(檔案指標);
功能:本函數用於清除出錯標誌和檔案結束標誌,使它們為0值。