| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2040 人关注过本帖
标题:一个用文件函数写入数据的错误
只看楼主 加入收藏
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-21 07:19
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 

不要相信老谭了,在他编写的<<C程序设计>>第二版中,318页 例 13.3程序是错误的.

我已经运行过了.

[此贴子已经被作者于2006-6-21 17:53:38编辑过]


2006-06-21 17:53
cd_tiger
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-6-10
收藏
得分:0 
请问到底该如何解决呢?用fwrite()函数后怎样才能显示为不是乱麻呢?
2006-06-21 18:08
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(cd_tiger)请问到底该如何解决呢?用fwrite(...
以下是引用cd_tiger在2006-6-21 18:08:41的发言:
请问到底该如何解决呢?用fwrite()函数后怎样才能显示为不是乱麻呢?

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(void)
{
FILE *fp=fopen("c:\\unknown.bin","wb");//创建1个二进制文件
float a[1000],tmp;
int i;
for(i=0;i<1000;i++)
{
tmp=sqrt(i+1);
fwrite(&tmp,sizeof(float),1,fp);//写入头1000个自然数的平方根
}
fclose(fp);//关闭该文件

system("type c:\\unknown.bin");//显示“乱码”
printf("\npress Enter key to continue...\n");
scanf("%*c");

fp=fopen("c:\\unknown.bin","rb");//重新打开该文件
fread(a,sizeof(float),1000,fp);//将1000个float读入a[]
fclose(fp);//关闭该文件

for(i=1;i<=1000;i++)
{
printf("%7.2f",a[i-1]);//展示之以进行验证
if(i%10==0)printf("\n");//每行输出10个数
}
return 0;
}

[此贴子已经被作者于2006-6-21 18:29:23编辑过]


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-21 18:26
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 

版主说的好!如果输入数字,并要在文本文件中显示时,用fprintf()函数,我还有一个问题,就是你的代码中用了scanf()函数,我没有见过这种用法,我查了scanf()函数的具体用法,知道它能够输入指针,还有其它的一些输入值,但我没能够看懂,能不能把它的具体用法给我说一下,不是经常用的,谢谢了!


2006-06-21 19:17
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(han2y)版主说的好!如果输入数字,并要在文本文...
scanf("%*c")的效果类似于getch(),目的都是造成停顿,以便观看屏幕。

真正有点意思的是下列情况:
int year,month,day;
printf("yyyy-mm-dd: ");//提示输入年-月-日
scanf("%d%*c%d%*c%d",&year,&month,&day);
这样写要比
scanf("%d-%d-%d",&year,&month,&day);
具备更好的容错性。
后者只能用“-”作为分隔符
前者几乎任何有效的字符都可以作为分隔符!
例如
2006-6-21
2006.6.21
2006/6/21
2006,6,21
2006*6*21
均为合法有效输入!


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-21 20:04
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

学习

[此贴子已经被作者于2006-6-28 13:32:34编辑过]


此号自封于2006年11月30日
2006-06-28 13:31
快速回复:一个用文件函数写入数据的错误
数据加载中...
 
   



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

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