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

2006-06-27 14:08
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 15:43
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
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 16:08
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 16:12
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
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 16:36
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 16:37
快速回复:[求助]如何使用fread
数据加载中...
 
   



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

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