从键盘录入10个学生的学号、姓名、数学成绩,将其中60分以上(含60分)的同学信息全部写入D:\my_data.txt文件中;再从文件中读出成绩,显示到屏幕上。
STUDENT stu[10];
int n = 0;
void saveData()
{
FILE *fp = fopen("D:\\my_data.txt","w");
if(fp == NULL)
return;
for(int i=0;i<n;i++)
{
if(stu[i].score >= 60)
fprintf(fp,"%s\t%s\t%f\n",stu[i].id,stu[i].name,stu[i].score);
}
fclose(fp);
}
void readData()
{
FILE *fp = fopen("D:\\my_data.txt","r");
if(fp == NULL)
return;
char buf[100];
n = 0;
while(fgets(buf,100,fp) != NULL)
{
sscanf(buf,"%s\t%s\t%f",stu[n].id,stu[n].name,&stu[n].score);
n++;
}
fclose(fp);
}
void input()
{
printf("请输入10个学生信息:");
n = 10;
for(int i=0;i<n;i++)
{
printf("请输入第%d个学生信息:",i+1);
scanf("%s %s %f",stu[i].id,stu[i].name,&stu[i].score);
}
}
void output()
{
printf("%10s%20s%10s\n","学号","姓名","数学成绩");
for(int i=0;i<n;i++)
printf("%10s%20s%10f\n",stu[i].id,stu[i].name,stu[i].score);
}
int main()
{
input();
saveData();
readData();
output();
return 0;
}