1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言格式化写入文件大小 利用C语言格式化读写文件

c语言格式化写入文件大小 利用C语言格式化读写文件

时间:2023-07-14 00:37:52

相关推荐

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语言能够起到一定的帮助作用!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。