您当前的位置: 首页 >  c语言

哆啦A梦_i

暂无认证

  • 11浏览

    0关注

    629博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C语言:fscanf函数与fprintf函数——格式化读写函数

哆啦A梦_i 发布时间:2019-01-17 16:49:36 ,浏览量:11

函数fscanf和函数sprintf是格式化读写文件函数,其功能与我们经常使用的scanf函数与printf函数类似。

两者区别:scanf函数和printf函数的读写对象分别是键盘和显示器;

                  fscanf函数和fprintf函数的读写对象是磁盘文件;

1.函数fscanf的原型:int fscanf(FILE*stream,char*format,...);

2.函数scanf的原型:int scanf(char*format,...);

(两者相差一个参数stream,对函数fscanf来说,其功能是要从文件stream中读取格式化数据到变量中。

如:调用fscanf函数,从文件中读取两个float型数据的代码如下:

fscanf(fp,"%f,%f",&a,&b);

它表示从fp指向的文件中读取两个实数到变量a和b中。

3.格式化读写函数举例

某市一个路段在某时刻交叉口的车流量如下:

 

车型路段1路段2car231109bus2912bike450239

编写程序,先将车流量写入文件test.txt,然后从文件中读出数据并计算分流量。

【分析】在交叉口处,分流量=路段1的车流量-路段2的车流量。

程序实现代码如下:

#include #include #include void readdata(); void writedata(); void main() {  writedata();  readdata(); } void writedata()                                                                       /*写数据到文件test.txt中*/ {  FILE *fp;  int r1,r2;  char vehicle[12];  if((fp=fopen("test.txt","w"))==NULL)                                      /*以写的方式打开文件test.txt*/  {   printf("打开文件失败.\n");   exit(-1);  }  printf("车型:");  gets(vehicle);                                                                        /*输入车型*/  while(strlen(vehicle)>0)  {   printf("路段1的车流量:");   scanf("%d",&r1);                                                                 /*输入路段1的车流量*/   printf("路段2的车流量:");   scanf("%d%*c",&r2);                                                           /*输入路段2的车流量*/   fprintf(fp,"%s%d%d",vehicle,r1,r2);   printf("车型:");   gets(vehicle);                                                                      /*输入车型*/  }  fclose(fp);                                                                             /*关闭文件*/ } void readdata()/*从文件test.txt中读取数据*/ {  FILE *fp;  int r1,r2;  char vehicle[12];  if((fp=fopen("test.txt","r"))==NULL)/*以写的方式打开文件*/  {   printf("打开文件失败.\n");   exit(-1);  }  printf("车型  路段1  路段2  分流\n");  while(!feof(fp))  {   fprintf(fp,"%s%d%d",vehicle,r1,r2);                                     /*读取文件中的数据到变量中*/   printf("%4s%5d%5d%5d",vehicle,r1,r2,abs(r1-r2));            /*输出车型,车流量和分流量*/  }  fclose(fp);                                                                             /*关闭文件*/ }

运行结果如下:

关注
打赏
1556978864
查看更多评论
立即登录/注册

微信扫码登录

0.0764s