C/C++如何修改数据文件指定内容

        以前一直以为C语言在写文本的时候无法修改指定的内容,而且在网上也查过,但都有得到具体的说明。今天无聊,写C代码玩,用到随机文件的读写。想想随机文件已经固定每次写入的数据大小了,不会影响到其他的数据,所以又来尝试了一把,想修改指定行的数据。       

   引发我问题的起因:用追加的方式打开数据文件(a,二进制数据就用ab),然后fwrite写数据,写的是实数,可是读出来的时候数据就错了,读文本没问题,感到很是郁闷。

    FILE *fp;

    fp=fopen("loadinfo.dat","ab");

       fwrite(&p,sizeof(struct loadinfo),1,fp);
       fclose(fp);

    后来用 wb 的方式写了条数据在读,没问题。于是我想用 wb 的方式来追加,写随机文件的时候把指针移到最后,可是失败了,只保存了最后一次的数据。

        后来想想 rb+ 的方式 能读能写,用这个来追加怎么样。经过一试,果然成功。

    于是我想到了用 rb+ 的方式修改指定数据,效果很好。

 

总结:在随机访问文件中,可用 r+/rb+ 的方式修改/追加记录!

菊子曰 本文用菊子曰发布

原文链接: https://www.cnblogs.com/liuke1987/archive/2012/02/25/2368183.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C/C++如何修改数据文件指定内容

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/42471

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午7:18
下一篇 2023年2月8日 下午7:18

相关推荐