C語言格式化讀寫檔案

2021-08-29 07:43:56 字數 2052 閱讀 4030

fscanf()

和fprintf()

函式與前面使用的

scanf()

和printf()

功能相似,都是格式化讀寫函式,兩者的區別在於

fscanf()

和fprintf()

的讀寫物件不是鍵盤和顯示器,而是磁碟檔案。

這兩個函式的原型為:

int fscanf ( file *fp, char * format, ... );

int fprintf ( file *fp, char * format, ... );

fp 為檔案指標,

format

為格式控制字串,

...

表示引數列表。與

scanf()

和printf()

相比,它們僅僅多了乙個

fp 引數。例如:

file *fp;

int i, j;

char *str, ch;

fscanf(fp, "%d %s", &i, str);

fprintf(fp,"%d %c", j, ch);

fprintf()

返回成功寫入的字元的個數,失敗則返回負數。

fscanf()

返回引數列表中被成功賦值的引數個數。

【示例】用

fscanf

和fprintf

函式來完成對學生資訊的讀寫。

#include

#define n 2

struct stu boya[n], boyb[n], *pa, *pb;

int main() //

從鍵盤讀入資料,儲存到

boya

printf("input data:\n");

for(i=0; i

scanf("%s %d %d %f", pa->name, &pa->num, &pa->age, &pa->score);   }

pa = boya; //

將boya

中的資料寫入到檔案

for(i=0; i

fprintf(fp,"%s %d %d %f\n", pa->name, pa->num, pa->age, pa->score);   }

//重置檔案指標

rewind(fp); //

從檔案中讀取資料,儲存到

boyb

for(i=0; i

fscanf(fp, "%s %d %d %f\n", pb->name, &pb->num, &pb->age, &pb->score); }

pb=boyb; //

將boyb

中的資料輸出到顯示器

for(i=0; i

printf("%s  %d  %d  %f\n", pb->name, pb->num, pb->age, pb->score); }

fclose(fp);

return 0; }

執行結果:

input data:

tom 2 15 90.5↙

hua 1 14 99↙

tom  2  15  90.500000

hua  1  14  99.000000 開啟

d:\\demo.txt

,發現檔案的內容是可以閱讀的,格式非常清晰。用

fprintf()

和fscanf()

函式讀寫配置檔案、日誌檔案會非常方便,不但程式能夠識別,使用者也可以看懂,可以手動修改。

如果將fp 設定為

stdin

,那麼fscanf()

函式將會從鍵盤讀取資料,與

scanf

的作用相同;設定為

stdout

,那麼fprintf()

函式將會向顯示器輸出內容,與

printf

的作用相同。例如:

#include

int main()

執行結果:

input two numbers: 10 20↙

sum=30

C語言格式化讀寫檔案

fscanf 和 fprintf 函式與前面使用的 scanf 和 printf 功能相似,都是格式化讀寫函式,兩者的區別在於 fscanf 和 fprintf 的讀寫物件不是鍵盤和顯示器,而是磁碟檔案。這兩個函式的原型為 int fscanf file fp,char format,int fpr...

格式化讀寫檔案fprintf,fscanf

define crt secure no warnings include include include int fprintf file stream,const char format,功能 根據引數format字串來轉換並格式化資料,然後將結果輸出到stream指定的檔案中,指定出現字串結束...

python 讀寫檔案格式化輸出

python讀寫檔案 1.open file object open thefile.txt try all the text file object.read finally file object.close 2.讀檔案 讀文字檔案 input open data r 第二個引數預設為r inp...