#include <stdio.h>
#include <stdlib.h>
typedef struct Student{
char nume[30];
char prenume[30];
float medie;
}Student;
int main()
{ FILE *st= fopen("input.txt","r");
Student a[10];
int i;
for(i=0;i<10;i++)
fscanf(st,"%s %s %f",a[i].nume,a[i].prenume,a[i].medie);
fclose(st);
return 0;
}
这应该从列表中读取名字,姓氏和数字,为什么它会崩溃?
列表如下所示:
ALEXANDRU Tudor 2.23
AMUZA Marius 2.15
CELCAN Alexandra 2.29
KONRAD Eric 2.15
...
最佳答案
几乎可以肯定,因为您正在将a [i] .medie(浮点数的值)而不是&a [i] .medie(浮点数的地址)传递给fscanf()。
但是如果文件input.txt不存在或不可读,您也会崩溃,因为您不检查fopen()返回的错误。