将文件扫描到C中的结构数组中

时间:2019-04-26 22:16:53

标签: c

我的程序没有读取文件的第一行。我有文件

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;
}

程序仅将文件的第一行读取到person [0]中,而不会超出该范围。

1 个答案:

答案 0 :(得分:3)

您正在读取第一条记录后关闭文件。将fclose()移出循环。

您还应该通过在循环浏览文件之前检查fptr是否不是NULL来检查文件是否已成功打开。