我的程序没有读取文件的第一行。我有文件
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]中,而不会超出该范围。
答案 0 :(得分:3)
您正在读取第一条记录后关闭文件。将fclose()
移出循环。
您还应该通过在循环浏览文件之前检查fptr
是否不是NULL
来检查文件是否已成功打开。