在VC环境中,使用fwrite 写入浮点数数据异常
#include<stdio.h>
#define SIZE 1
typedef struct
{
float num;
float age;
}student;
student stu[SIZE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("dat.txt","w"))==NULL)
{
printf("无法打开此文件!\n");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
printf("文件写入错误。!\n");
fclose(fp);
}
void main()
{
int i;
for(i=0;i<SIZE;i++)
scanf("%f%f",&stu[i].num,&stu[i].age);
save();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以按
F5
调试,在弹框的时候点重试,会跳到发生异常的点,左边会有个箭头标出是哪行造成的错误。按这里提供的信息,至少有一处肯定是错的:
要改成:
在
Windows
下读写二进制的文件,打开方式必须指定 "b" 参数,不然即使不发生运行时异常,出来的文件数据也不对。if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
应为
if(fwrite(stu[i], sizeof(student), 1, fp) != 1)
~~就上面的代码来看,你的VC6有问题,你试试换个机器就能测试通过