“somefile.dat”中存储了 10 条记录,但以下程序打印了 11 个名称。什么 出错了?
void main()
{
struct student
{
char name[30], rollno[6];
}stud;
FILE *fp = fopen(“somefile.dat”,”r”);
while(!feof(fp))
{
fread(&stud, sizeof(stud), 1 , fp);
puts(stud.name);
}
}
最佳答案
feof
函数导致循环比预期再次进入。如需完整说明,请阅读此处:
Why is “while ( !feof (file) )” always wrong?
关于c++ - 存储在文件中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554475/