#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()返回的错误。

10-02 04:34