“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/

10-10 08:23