как скопировать из текстового файла в структуру с помощью fscanf - PullRequest
0 голосов
/ 23 мая 2018
    #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
...

1 Ответ

0 голосов
/ 23 мая 2018

Почти наверняка, потому что вы передаете [i] .medie (значение с плавающей точкой), а не & a [i] .medie (адрес с плавающей точкой) в fscanf ().

Но вы будететакже сбой, если файл input.txt отсутствует или не читается, так как вы не проверяете ошибку, возвращаемую из fopen ()

...