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