一个小问题,文件

zhangyanli 2008-05-23 07:56:58
为什么度不出来浮点数:
5
0.3
0.1
0.4
0.2
0.0
代码如下:
#include<stdio.h>
int main()
{
int count;
double a,b,c,d,e;
FILE* pf=fopen("E:\\huffman.txt","r+");
if(pf==NULL)
printf("file open failed!");
fscanf(pf,"%d",&count);
fscanf(pf,"%f",&a);
fscanf(pf,"%f",&b);
fscanf(pf,"%f",&c);
fscanf(pf,"%f",&d);
fscanf(pf,"%f",&e);

printf("%d\t%f\t%f\t%f\t%f\t%f\t",count,a,b,c,d,e);
}
读出来的是这样:
5 -92559604109209606000000000000000000000000000000000000000000000.000000
-92559603955960049000000000000000000000000000000000000000000000.000000 -9255960
4147521992000000000000000000000000000000000000000000000.000000 -925596040517410
20000000000000000000000000000000000000000000000.000000 -92559592117431994000000
000000000000000000000000000000000000000.000000 Press any key to continue
...全文
209 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezichong 2008-05-24
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
int count;
float a,b,c,d,e;
FILE* pf=fopen("E:\\huffman.txt","r+");
if(pf==NULL)
printf("file open failed!");
fscanf(pf,"%d",&count);
fscanf(pf,"%f",&a);
fscanf(pf,"%f",&b);
fscanf(pf,"%f",&c);
fscanf(pf,"%f",&d);
fscanf(pf,"%f",&e);

printf("%d\t%f\t%f\t%f\t%f\t%f\t",count,a,b,c,d,e);
}
butwang 2008-05-24
  • 打赏
  • 举报
回复
读的时候fscanf(pf,"%f",&b); 遇到空格或回车换行就认为读了一个数(字符串),然后按类型转换为指定的数字
zhangyanli 2008-05-23
  • 打赏
  • 举报
回复
我是楼主:

个人认为,不管关“%f”还是“%lf”的事,好像跟文件的存储有关,要是用浮点数写进去再读就可以。
可是又不知道为什么?

哪位高人帮一下忙啊 。。。
winddarkdancer 2008-05-23
  • 打赏
  • 举报
回复
俺是来学习滴,一起努力!up^up
kojie_chen 2008-05-23
  • 打赏
  • 举报
回复
楼上说的是
liyinlei 2008-05-23
  • 打赏
  • 举报
回复
因为 double a,b,c,d,e;
double型需要用 fscanf(pf,"%lf",&b);

float 才是 “%f”
babyvox1999 2008-05-23
  • 打赏
  • 举报
回复
该成float a,b,c,d,e;
csdn5211 2008-05-23
  • 打赏
  • 举报
回复
存的时候怎么存的?是按浮点数格式吗?
ForestDB 2008-05-23
  • 打赏
  • 举报
回复
一句话,怎么写,怎么读...

33,320

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧