c语言格式化写入文件大小,利用C语言格式化读写文件
“在C語言中進行格式化讀寫文件”按照字面意思通常大家都會理解為將讀寫文件進行格式化的操作,那么到底我們是不是真的將讀寫文件進行格式化的操作呢?下面課課家筆者就為大家簡單介紹C語言中格式化讀寫文件的概念和具體的操作編寫方法。
首先筆者先給大家介紹fscanf()和fprintf()函數的概念。fscanf()和fprintf()函數與前面使用的scanf()和printf()功能相似,它們都是格式化讀寫函數,具體的區別在于fscanf()和fprintf()的讀寫對象不是鍵盤和顯示器而是磁盤文件。
fscanf()和fprintf()函數的原型為:
intfscanf(FILE*fp,char*format,...);
intfprintf(FILE*fp,char*format,...);
在這里fp為文件指針,format為格式控制字符串,...表示參數列表。與scanf()和printf()相比,它們僅僅多了一個fp參數。具體比如:
FILE*fp;
inti,j;
char*str,ch;
fscanf(fp,"%d%s",&i,str);
fprintf(fp,"%d%c",j,ch);
fprintf()返回成功寫入的字符的個數,失敗則返回負數。fscanf()返回參數列表中被成功賦值的參數個數。
下面筆者用fscanf和fprintf函數來完成對學生信息的讀寫,具體代碼如下:
#include
#defineN2
structstu{
charname[10];
intnum;
intage;
floatscore;
}boya[N],boyb[N],*pa,*pb;
intmain(){
FILE*fp;
inti;
pa=boya;
pb=boyb;
if((fp=fopen("D:\\\\demo.txt","wt+"))==NULL){
printf("Cannotopenfile,pressanykeyexit!");
getch();
exit(1);
}
//從鍵盤讀入數據,保存到boya
printf("Inputdata:\\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);
return0;
}
輸出結果:
Inputdata:
Tom21590.5↙
Hua11499↙
Tom21590.500000
Hua11499.000000
此時我們打開D:\\\\demo.txt,可以發現文件的內容是可以閱讀且格式比較清晰。我們通過用fprintf()和fscanf()函數,在讀寫配置文件、日志文件時會比較方便,不但程序能夠識別,而且用戶也可以看懂并手動修改。另外如果我們將fp設置為stdin,那么fscanf()函數將會從鍵盤讀取數據,與scanf的作用相同;設置為stdout,那么fprintf()函數將會向顯示器輸出內容,與printf的作用相同。具體比如:
#include
intmain(){
inta,b,sum;
fprintf(stdout,"Inputtwonumbers:");
fscanf(stdin,"%d%d",&a,&b);
sum=a+b;
fprintf(stdout,"sum=%d\\n",sum);
return0;
}
輸出結果:
Inputtwonumbers:1020↙
sum=30
本次利用C語言格式化讀寫文件的講解到此暫告一段落,如果以后有什么內容繼續進行補充或者修改的話,筆者會在此進行相關的內容補充或者修改的工作,同時也歡迎大家對本次的講解提出自己的建議和補充,最后希望本次的教程對大家學習C語言能夠起到一定的幫助作用!
總結
以上是生活随笔為你收集整理的c语言格式化写入文件大小,利用C语言格式化读写文件的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 摩尔庄园手游白萝卜鱼在哪钓?
 - 下一篇: 茶花树多少钱一棵树(大树)?