c++ - 存储在文件中的记录

标签 c++ file pointers

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

相关文章:

c++ - 在 visual studio 和 eclipse 中打印 wchar_t 会给出不同的结果

c - 新变量指向旧变量

C:将 char* 附加到 char**

c - 有没有办法将文件指针设置为特定行?

c++ - STL 映射 : Access violatoin reading location

c# - 我想从 C++ 非托管代码调用 C# 委托(delegate)。无参数委托(delegate)工作正常,但带参数的委托(delegate)使我的程序崩溃

c++ - 将左值传递给右值模板参数将不允许我声明 const T& var

c++ - 使用多线程将标准输出重定向到文件

java - 如何测试文件是否在Java中打开?

c++ - 是否可以从 decltype 获取类型?