| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3519 人关注过本帖
标题:[求助]如何使用fread
取消只看楼主 加入收藏
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 
但是,为什么取实数时不对呢?
我想将一个已经有很多数据的文件中的数据一个个取出来放到一个数组中,
我该怎么做啊?
刚才试了半天,
用fscanf和fread都没成功

2006-06-27 14:08
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 

我的程序是这样的:

# include "math.h"
# include "stdio.h"
void main()
{
float num[10];
float a;
int i;
FILE *ff,*fp;
ff=fp=NULL;

ff=fopen("e:\\test01.txt","w");
a=0;
for(i=0;i<=9;i=i+1)
{
a=a+10.0;
num[i]=a;
printf("%f",num[i]);
fprintf(ff,"%f",a);
}
fclose(ff);

fp=fopen("e:\\test01.txt","rb");
for(i=0;i<=9;i=i+1)
fread(&num[i],sizeof(float),1,fp);
fclose(fp);

for(i=0;i<=9;i=i+1)
printf("num=%f \n",num[i]);
}

打印结果全部是0。
这样生成的文件里是不是二进制实数?
我也不是很懂。
呵呵。


2006-06-27 16:01
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 

哦,是这样啊。我去试一试fwrite


2006-06-27 16:14
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 
啊!我成功了。

将原程序中的
printf("%f",num[i]);
fprintf(ff,"%f",a);
改为
fwrite(&a,sizeof(float),1,ff);
就可以了。
原来问题出在二进制形式这儿。

谢谢你啊。




2006-06-27 16:29
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 
我去看了你推荐的这几个帖子,棒极了。
原先我用fread和fscanf搜没找到。
原来在这儿呢。

谢谢你。

2006-06-27 16:32
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 

呵呵,我的正式程序中都使用double。
不过不知道float很土。
因为要算的数据精度要求很高(我是理论物理专业)。
只是在小的测试程序中用用float。
原来是这样阿,好吧,听你的,以后都用double。



2006-06-27 16:50
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 
了不起啊!
崇拜中......

2006-06-27 16:51
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 
当然是谭浩强啊。
好像很多人都说他的书不好,我也不知道看什么好。

给推荐几本好书好吗?
打算暑假恶补一下。
目前会的这点儿东西真是不够用阿。

2006-06-27 17:03
mhl0002
Rank: 1
等 级:等待验证会员
帖 子:27
专家分:0
注 册:2006-4-22
收藏
得分:0 

哦,知道了。
那里面版主说的《Turbo C实用大全》(徐金梧)昨天查读写函数时就借回来了。
看来,不是伯乐,千里马来到面前也认不出来呀。


2006-06-28 07:29
快速回复:[求助]如何使用fread
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022808 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved