【发布时间】:2018-05-23 20:29:56
【问题描述】:
#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
...
【问题讨论】:
-
fscanf想要变量的地址(不是他的值),将float成员的a[i].medie更改为&a[i].medie。 -
fopen()和fscanf()的返回值是多少?每当您使用此类函数并忽略返回值时,您很可能会被问到同样的问题。