紧急求助,如何使用fscanf函数正确读取dat文件中数据 呀
admin 发表于 2010-08-28 | 来源:互联网 | 阅读:


void ReadDat1() /* 读函数 */ 
{int i;
double data[16]
 FILE *fp;
 fp=fopen("xishujuzhen.dat","r");
 for(i=0;i<16;i++)
  fscanf(fp, "%d", &data[i]);
  fclose(fp);
  }

void ReadDat2() /* 读函数 */ 
{int i;
 double data[4];
 FILE *fp2;
 fp2=fopen("juzhen2.dat","r");
 for(i=0;i<16;i++)
  fscanf(fp2, "%d", &data[i]);
  fclose(fp2);
 }

已经有6 个评论
  1. hahamy 说:

    两个dat文件一个包含16个数据——1.00 1.00 1.00 1.00 58.06 1.79 2.06 0.24 4.09 58.20 2.85 0.73 20.77 29.99 43.26 4.91另外一个包含4个数据——100,300,1171,1617以上的函数定义的错误处在哪里呢?请各位高手指教、。我C语言功底不很扎实,所以看了很多关于fscanf函数的解说帖子还是不是很清楚,希望能结合实例给予讲解……拜谢!

  2. xiaobao520 说:

    fscanf里面的%d改成%lf%d 用于int类型%f 用于float类型%lf 用于double类型

  3. TheAlien 说:

    其他:ReadDat2的 for循环里面 i<16应该是i<4data是局部变量,如果不在这个函数里面使用,出了这个函数就失效了。如果从严要求,fopen之后应该马上判断一下它的返回值是不是NULL

  4. dbb123 说:

    很感谢楼上的大人说。、本来以为这种时候不会有人的~O(∩_∩)O 。感动哦!

  5. awaywind 说:

    其他:ReadDat2的 for循环里面 i<16应该是i<4data是局部变量,如果不在这个函数里面使用,出了这个函数就失效了。如果从严要求,fopen之后应该马上判断一下它的返回值是不是NULL恩。是的,看到网上另外一段代码用的是if else 结构,不过鉴于我做的这道题不是很复杂,所以就省略了一下。。。呵呵。是有点偷懒。

  6. 徐咏波 说:
我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明