|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[10];
float mark;
}student[3];
void save()
{
int i;
FILE *p;
if ((p=fopen("mark.dat","wb"))==NULL)
{printf("错误");exit (0);}
for (i=0;i<3;i++)
if (fwrite(&student[i],sizeof (struct student),1,p)!=1)
printf("错误");
fclose(p);
}
void load()
{
int i;
FILE *fp;
if ((fp=fopen("mark.dat","rb"))==NULL)
{printf("错误");exit (0);}
for (i=0;i<3;i++)
fread(&student[i],sizeof (struct student),1,fp);
for (i=0;i<3;i++)
if ((student[i].mark)>85)
printf("第%d个学生成绩高于85,具体是%f\n",i+1,student[i].mark);
fclose(fp);
}
void main ()
{
void save();
void load();
int i;
printf("请输入三个学生的学号,姓名和成绩\n");
for (i=0;i<3;i++)
scanf("%d,%s,%f",&student[i].num,student[i].name,&student[i].mark);
save();
load();
}
代码如上,生成的mark.dat文件里面num那部分为什么会转换成ASCII格式?比如定义一个学生编号是101,在文件里显示是e。还有就是load函数哪里有问题吗,怎么打印不出来?请指点!!! |
|