zoukankan      html  css  js  c++  java
  • fread 不能读取最后一个数据块

    今天遇到一个问题,fread()竟然不能读取文件中的最后一个数据块。

    我定义了一个结构体:

    Persong
    {
        char name[10];
        char phone[15];
    }
    以及两个函数:
    int insert(Person*person)
    {
        FILE *fd;
        //...
    
        fwrite();//意思一下流程
    
        //...
    }
    
    int show(char *name)
    {
        FILE *fd;
        //...
        while(!feof(fd))//没有到文件尾
                fread();//意思一下流程
    
        //...
    }
    

    主函数:

    
    
    
    

    void main()
    {
        //...
        insert();
        show();
    }
    状态:

    能够成功insert,但是读取的时候不能读出刚插入的一个数据块(Person结构体)。

    搞了两个小时,最后找出问题的我眼泪掉下来。

    原来问题出在fclose(fd)。

    两个函数中分别打开了同一个文件,但是我都忘记close,所以insert后没有立即更新到文件中,然后show的时候打开文件,文件中自然没有刚插入的数据,所以造成了文件读不全的假象。




  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/zhanghang-BadCoder/p/6476470.html
Copyright © 2011-2022 走看看