C语言 二进制文件的读写

从键盘读入10个浮点数,以二进制形式存入文件中;再从文件中读出数据显示在屏幕上。修改文件中第n个数据,修改的数据从键盘读入;再从文件中读出数据显示在屏幕上,以验证修改的正确性。

要求:

    1)输出的数据保留小数点后两位;

    2)读取后显示的10个浮点数在一行显示,两个数之间用一个空格分隔。

运行参考示例:

输入1:

4.3 2.6 9.2 5.4 6.4 8.3 1.22 7.5 3.25 6.68

5

5.19

输出1:

4.30 2.60 9.20 5.40 6.40 8.30 1.22 7.50 3.25 6.68

4.30 2.60 9.20 5.40 5.19 8.30 1.22 7.50 3.25 6.68

运行代码如下:

#include <stdio.h>
#include <stdlib.h>
 
void ctfb(FILE *fp)
{
   int i;
   float x;
   for(i=0;i<10;i++)
   {
      scanf("%f",&x);
      fwrite(&x,sizeof(float),1,fp); 
   }
}
 
void fbtc(FILE *fp)
{
   float x;
   
   rewind (fp);
   fread(&x,sizeof(float),1,fp);
   while(!feof(fp))
   {
      printf("%.2f ",x);
      fread(&x,sizeof(float),1,fp);
   }
   printf("\n");
}
 
void updata(FILE *fp,int n,float x)
{
   fseek(fp,(long)(n-1)*sizeof(float),0);
   fwrite(&x,sizeof(float),1,fp);
}
 
int main()
{
   FILE *fp;
   int n=4;
   float x;
   
   if((fp=fopen("file.dat","wb+"))==NULL) 
   {
      printf("can't open this file\n");
      exit(0);
   }
   ctfb(fp); 
   fbtc(fp);
   scanf("%d",&n);
   scanf("%f",&x);
   updata(fp,n,x);
   fbtc(fp);
   fclose(fp);
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值