fputc和fgetc的使用

2021-10-05 14:37:04 字數 1242 閱讀 9338

int fputc(int ch,file *stream);//向檔案中寫字元

int fgetc(file *stream);//從檔案中讀字元

注意:1)fputc()函式的引數是  int ch,但是傳入的時候需直接傳入字元;

2)fgetc的返回值是int ,一定不要弄錯了。

如果換成char會容易誤判:

首先明白三點:

i)32位系統中 eof = 0xff ff ff ff;     

ii)fgetc的返回值型別是int,如果用char作為返回值的話,相當於進行了一步型別轉換;

iii)fgetc引數的範圍是0x00 至 0xff,即是個unsigned char

使用char型別返回 :(錯誤)

先擴充至32位int   0x00 00  00 ff 返回 ;轉char 後只剩一位元組,變成 0xff;

char與eof這個int 比較時,會轉換為0xff ff ff ff,這樣就和eof相等,造成誤判退出;

使用int型別返回:(正確)

先擴充至32位int   0x00 00  00 ff 返回 ;轉int後正常輸出,變成 0x00 00 00 ff;

int與eof這個int 比較時,0x00 00 00 ff  不等於 0xff ff ff ff,不會造成誤判;

ascii碼的資料型別是uchar.

char ch_put = 'a';//輸入char型別

fputc(ch,fp);

int ch_get; //這個地方一定要是int才行!!!!!

while ( ( ch= fgetc(fp) ) != eof) //不斷讀取檔案知道結束

詳細解釋:參考

附錄:資料型別轉換順序

double ←—— float 高 

↑ long 

↑ unsigned 

↑ int ←—— char,short 低 

參考:

乙個程式看fputc和fgetc

在文章的開始,我們先來學習一下gatchar函式。getchar 本意出入乙個字元,只能輸入乙個字元,這點很重要。fputc 把字元寫到對應的檔案中,注意這裡是字元。fgetc 輸入乙個字元,說白了就是讀取乙個字元 include includeint main ch getchar 用來接收最後的...

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...