哪位大师帮忙解决一下,为什么在文件中显示不出自己输入的数据,而显示的是看不懂的字符?

#include<stdio.h>/*利用结构体和文件函数记录三个同学的姓名、学号、成绩*/#include<stdlib.h>/*并存放在用户自建的文件夹中,最终计算三... #include<stdio.h> /*利用结构体和文件函数记录三个同学的姓名、学号、成绩*/
#include<stdlib.h> /*并存放在用户自建的文件夹中,最终计算三个同学各自成绩平均值*/
struct stu
{
long num;
char name[20];
float c;
float m;
float e;
}student[3];
main()
{
int i;
struct stu student[3];
FILE *fp;
char filename[30];
printf("please input the file name.\n");
scanf("%s",&filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("flie %s can't open",filename);
exit(0);
}
fclose(fp);
printf("please input three students num and score.\n");
for(i=0;i<3;i++)
{
scanf("%s",&student[i].name);
scanf("%ld%f%f%f",&student[i].num,&student[i].c,&student[i].m,&student[i].e);
}
if((fp=fopen(filename,"w+"))==NULL)
{
printf("the file can't open.\n");
exit(0);
}
for(i=0;i<3;i++)
{
fwrite(&student[i],sizeof(struct stu),1,fp);
}
for(i=0;i<3;i++)
{ puts(student[i].name);
printf("student[%d].num=%ld\tstudent[%d].c=%f\t",i,student[i].num,i,student[i].c);
printf("student[%d].m=%f\tstudent[%d].e=%f\n",i,student[i].m,i,student[i].e);
}fclose(fp);
}
展开
 我来答
匿名用户
2013-06-15
展开全部
fwrite(&student[i],sizeof(struct stu),1,fp);

结构存储是二进制,看不到文本。例如浮点数1234.5678存储占4个字节,不是9个字节。
文本方式存储可以看到,例如:
for(i=0;i<3;i++)
fprintf(fp,"%s %ld %f %f %f",student[i].name,student[i].num,student[i].c,student[i].m,student[i].e
);
追问
如果要是还用那个fwrite函数有没有解决办法呢?
追答
没有办法。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式