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