4 fgetc函式與fputc函式

2021-10-08 04:52:35 字數 1941 閱讀 6193

一、前言

讀取檔案時,可以是連續讀一片內容,也可以一次讀乙個字元,本章講解如何從檔案中一次讀乙個字元。

二、fgetc函式與fputc函式

1、fgetc函式

fgetc 是 file get char 的縮寫,意思是從指定的檔案中讀取乙個字元。fgetc() 的用法為:

int fgetc (file *fp);
fp為檔案指標,返回值成功則讀取到的字元,失敗或者讀到末尾返回eof。

注意:返回型別是int型,為什麼是int型,因為eof的值是-1(不一定是-1,但是肯定是負數),所以我們接收返回值的時候最好定義乙個有符號型別變數來接收;我們知道,當fopen開啟檔案時,檔案內部的位置指標(注意不是fp)指向第乙個字元,當讀到乙個字元後,就會往下乙個字元位移。

#include #include int main()

int c = fgetc(fp);

printf("%d %c\n",c,c);

fclose(fp);

return 0;

}

對 eof 的說明

eof 本來表示檔案末尾,意味著讀取結束,但是很多函式在讀取出錯時也返回 eof,那麼當返回 eof 時,到底是檔案讀取完畢了還是讀取出錯了?我們可以借助 stdio.h 中的兩個函式來判斷,分別是 feof() 和 ferror()。

feof() 函式用來判斷檔案內部指標是否指向了檔案末尾,它的原型是:

int feof ( file * fp );
當指向檔案末尾時返回非零值,否則返回零值。

ferror() 函式用來判斷檔案操作是否出錯,它的原型是:

int ferror ( file *fp );
出錯時返回非零值,否則返回零值。

#includeint main()

//每次讀取乙個位元組,直到讀取完畢

while( (ch=fgetc(fp)) != eof )

putchar('\n'); //輸出換行符

if(ferror(fp))else

fclose(fp);

return 0;

}

這樣,不管是出錯還是正常讀取,都能夠做到心中有數。

2、fputc函式

fputc 是 file output char 的所以,意思是向指定的檔案中寫入乙個字元。fputc() 的用法為:

int fputc ( int ch, file *fp );
ch為要寫入的字元,fp為檔案指標。當寫入成功時返回寫入的字元,失敗是返回eof,返回值型別為int(接收返回值變數型別最好為有符號,因為假如寫入出錯,返回負數用如unsigned int接收的話,負數會轉為乙個很大的整數值,從而誤判)。

注意:fopen函式開啟檔案的方式很重要,有讀寫、寫、追加等方式,讀寫、寫方式會把檔案以前的內容刪掉,然後重新開始寫入字元,追加方式開啟檔案,則會在檔案內容末尾追加寫入的字元。每寫乙個字元,檔案位置指標就會往後移動一位,所以可以實現連續寫一段字串。

#include#include int main()

printf("input a string:\n");

//每次從鍵盤讀取乙個字元並寫入檔案

while ( (ch=getchar()) != '\n' )

fclose(fp);

return 0;

}

以追加方式寫入檔案,根據提示寫入一段字串,回車,用命令cat 2.txt可以看到檔案中末尾多了剛才鍵盤敲進去的字串。

參考:

C語言利用fgetc和fputc函式實現檔案的複製

分析 使用指定函式實現指定功能。所以這裡問題就簡單化,我們弄明白fgetc和fputc兩個函式如何使用即可。函式原型 函式介紹 int fgetc file stream 從指定的流 stream 獲取下乙個字元 乙個無符號字元 並把位置識別符號往前移動。函式成功讀取時返回讀取的字元,若到檔案末尾或...

C語言fgetc和fputc函式用法詳解

以字元形式讀寫檔案時,每次可以從檔案中讀取乙個字元,或者向檔案中寫入乙個字元。主要使用兩個函式,分別是 fgetc 和 fputc fgetc 是 file get char 的縮寫,意思是從指定的檔案中讀取乙個字元。fgetc 的用法為 int fgetc file fp fp 為檔案指標。fge...

fgetc與fputc完成檔案的拷貝

int fgetc file stream 功能 讀取接下來的乙個字元 引數 檔案指標 返回 讀取到的字元的ascii碼,讀到檔案末尾或失敗eof 1 int fputc int c,file stream 功能 向stream檔案寫乙個字元c 返回 成功返回寫入字元的ascii碼,失敗返回eof ...