c語言文件寫入字元
『壹』 c語言對文件操作,用fputs函數不能把字元串寫入文件
讀寫一個字元數據
經過前面的學習,我們學習了fread()、fwrite()函數的操作,這兩個函數都是對一段「內存塊」進行讀寫操作。那麼,C語言還提供了fgetc()、fputc()函數,對文件中的一個字元進行讀寫操作。這些函數的定義如下:
int fgetc(FILE *stream);
函數說明:從stream文件指針所指向的文件讀取1個字元,通過函數的返回值返回。例如:
char c = fgetc(fp);
就是從fp指向的文件,讀取1個字元的數據,通過函數返回值,設置給字元變數c。
int fputc(int c, FILE *stream);
函數說明:把參數c表示的字元,寫入stream文件指針所指向的文件。例如:
char c = 'M';
fputc(c, fp);
就是把參數c表示的字元變數,寫入文件指針fp指向的文件。如下是一個程序測試例子:
可以看到,新建一個test.txt文件,調用fputc()函數,把一個字元寫入到文件中。然後,再重新打開文件,讀取文件的數據,調用fgetc()函數讀取一個字元,得到的數據是剛剛寫入的字元。所以,通過這個例子,我們學習了fgetc()、fputc()函數的操作,對文件進行一個字元的讀寫操作。
3.5 讀寫一行字元數據
C語言提供了fgets()、fputs()函數對文件進行讀寫「一行」的數據,字元串以'\n'字元換行,注意,所謂的「一行」數據,它的最後一個有效字元是』\n』,表示換行符號。字元串的結束符,還是以』\0』為結尾,表示字元串結束符。其中fgets()函數的定義如下:
char *fgets(char *buf, int size, FILE *stream);
函數說明:從stream函數指針所指向的文件中,讀取size-1個位元組到buf緩存,不是讀取size個位元組,因為,buf[ ]緩存的第size個位元組存放字元串結束符,形成一個有效的字元串。
當讀取到換行符時,或者到達文件末尾時,結束文件的讀取操作。
返回值:讀取數據成功,返回存儲數據的緩存地址,就是參數buf的地址。如果讀取數據失敗,返回NULL。例如,讀取文件完,沒有數據可以再讀取,則返回NULL。
int fputs(const char *buf, FILE *stream);
函數說明:把參數buf指針指向的字元串,寫入到stream指向的文件。參數buf是一個字元串指針,必須指向一個合法的字元串。合法的字元串是以字元串結束符'\0'結束,表示一個字元串的結尾。
返回值:寫入數據成功,返回成功寫入的字元個數。失敗返回EOF標記。
如下是一個程序測試例子:
程序運行結果如下:
可以看到,程序調用fputs()函數,往打開的test.txt文件寫入數據。直接寫入一個字元串。然後,關閉文件,再重新打開文件。調用fgets()函數讀取數據,讀取數據的時候,遇到回車換行的字元'\n',表示一行數據,那麼,就返回讀取到的一行數據。
在實際的項目開發過程中,fgets()函數非常有用。例如,我們定義一個config.txt文件,裡面存放一些系統的配置信息,文件的格式如下:
cat /etc/config.txt
sys_pwd=123456
ApCliAuthMode=WPA2PSK
ApCliEncrypType=AES
ApCliChannel=1
ApCliDefaultKeyID=1
那麼,文件的配置信息是一行一行數據,所以,可以用fgets()函數,快速讀取出每一行系統配置信息。
『貳』 c語言中fputc是什麼意思
C語言中,fputc是一個用於將字元寫入到文件的函數。以下是關於fputc的詳細解釋:
函數原型:int fputc。其中,c 是要輸出的字元,fp 是指向 FILE 對象的指針,表示目標文件。
功能:fputc 函數將字元 c 寫入到由 fp 指向的文件當前寫位置。每次成功寫入一個字元後,文件的寫指針會自動向前移動一個位元組。
返回值:
- 如果操作成功,函數返回寫入字元的 ASCII 碼值。
- 如果遇到錯誤,函數返回 EOF,其值在 <stdio.h> 頭文件中定義為 1。
使用場景:fputc 函數常用於字元級別的文件寫入操作。當需要將單個字元寫入到文件中時,可以使用此函數。
注意事項:
- 在使用 fputc 函數之前,通常需要先使用 fopen 函數打開文件,並獲得 FILE 指針。
- 寫入操作完成後,應使用 fclose 函數關閉文件,以釋放資源。
總之,fputc 是 C 語言中用於字元文件寫入的重要函數,它提供了簡單而有效的字元輸出機制。