Сканирование файла в массив структур в C - PullRequest
1 голос
/ 27 апреля 2019

Моя программа не читает после первой строки моего файла. У меня есть файл

John 22 67 
Rickard 31 100 
Andrew 21 34 
Sarah 20 80

Попытка чтения с помощью:

void loadPeople(char fileName[],Person people[],int * length){
  FILE *fptr = fopen("fileName", "r");
  int i;
  for(i=0; i<N; i++){
    fscanf(fptr, "%s", people[i].name);
    fscanf(fptr, "%d", &people[i].age);
    fscanf(fptr, "%lf", &people[i].score);
    fclose(fptr);
  }
  return;
}

Программа читает только первую строку файла в лицо [0], но не дальше.

1 Ответ

3 голосов
/ 27 апреля 2019

Вы закрываете файл после прочтения первой записи. Переместите fclose() из цикла.

Вам также следует убедиться, что файл был успешно открыт, проверив, что fptr не является NULL перед циклом просмотра файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...