从键盘录入10个学生的学号、姓名、数学成绩,将其中60分以上(含60分)的同学信息全部写入
D:\my_ data.txt文件中;再从文件中读出成绩,显示到屏幕上。用c语言解决
用scanf从键盘接收数据,然后用if判断分数并写入文件,如有代码需要可以私信
typedef struct _STUDENT
{
char id[20];
char name[20];
float score;
}STUDENT;
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;
}