紧急求助,如何使用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);
}

两个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函数的解说帖子还是不是很清楚,希望能结合实例给予讲解……拜谢!
fscanf里面的%d改成%lf%d 用于int类型%f 用于float类型%lf 用于double类型
其他:ReadDat2的 for循环里面 i<16应该是i<4data是局部变量,如果不在这个函数里面使用,出了这个函数就失效了。如果从严要求,fopen之后应该马上判断一下它的返回值是不是NULL
很感谢楼上的大人说。、本来以为这种时候不会有人的~O(∩_∩)O 。感动哦!
其他:ReadDat2的 for循环里面 i<16应该是i<4data是局部变量,如果不在这个函数里面使用,出了这个函数就失效了。如果从严要求,fopen之后应该马上判断一下它的返回值是不是NULL恩。是的,看到网上另外一段代码用的是if else 结构,不过鉴于我做的这道题不是很复杂,所以就省略了一下。。。呵呵。是有点偷懒。