#include<stdio.h>
#include<stdlib.h>
struct student
{
char num[10];
char name[10];
float math;
float english;
}stu[5];
int main()
{
int i;
FILE *fp;
for(i=0;i<4;i++)
{
printf("no.");
scanf("%s",stu[i].num);
printf("name.");
scanf("%s",stu[i].name);
printf("math.");
scanf("%f",&stu[i].math);
printf("english.");
scanf("%f",&stu[i].english);
}
if((fp=fopen("c:\exp","w"))==NULL)
{
printf("\nCan't open this file\n");
exit(0);
}
fclose(fp);
fp=fopen("c:\exp","r");
for(i=0;i<4;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%.2f,%.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english);
}
fclose(fp);
return 0;
}
我不知道咋写,但好像没代码题目审核不成功。
供参考:
#include<stdio.h>
#include<stdlib.h>
struct student
{
char num[10];
char name[10];
float math;
float english;
}stu[5], st[5];
int main()
{
int i;
FILE* fp;
for (i = 0; i < 4; i++)
{
printf("no.");
scanf("%s", stu[i].num);
printf("name.");
scanf("%s", stu[i].name);
printf("math.");
scanf("%f", &stu[i].math);
printf("english.");
scanf("%f", &stu[i].english);
}
if ((fp = fopen("d:\\exp.txt", "w")) == NULL) //if ((fp = fopen("c:\exp", "w")) == NULL)
{
printf("\nCan't open this file\n");
exit(0);
}
fwrite(stu, sizeof(struct student), 4, fp); //修改 写入文件
fclose(fp);
fp = fopen("d:\\exp.txt", "r"); //fp = fopen("c:\exp", "r");
for (i = 0; i < 4; i++)
{
fread(&st[i], sizeof(struct student), 1, fp);
printf("\n%s,%s,%.2f,%.2f\n", st[i].num, st[i].name, st[i].math, st[i].english);
}
fclose(fp);
return 0;
}