fopen()打开文件fwrite()修改原文件的问题!!!

来源:互联网 发布:抵御网络黑客攻击 编辑:程序博客网 时间:2024/05/16 10:07

说是小问题,实际上还是给我带来了很大麻烦,编程中用fwrite()将一结构写入文件,修改文件时用fopen()打开文件

fopen()原型FILE * fopen(const char * path,const char * mode),其中第三个参数有r,r+,w,w+,a,a+(二进制文件用加b)!我本意是修改原文件,所以用fseek()将文件指针移到我要修改的位置,然后用fwrite()将内容重新写入,学生信息的文件存储为“stu.dat”打开文件的地方最开始这样写的:

                   FILE  *fp;

                   fp=fopen("stu.dat","wb+");......

开始知道wb+会覆盖原文件,但是指针移动到要写的位置应该不会,而且上网问过一些人也都是这么说的,结果是每次文件都被重新写入,以前的内容都会被新的覆盖,后来改为ab+结果新写入的内容是追加进去的,试来试去只有这样好使:

                   FILE  *fp;

                   fp=fopen("stu.dat","rb+");......

最初看书的时候说w+是可读写,r+也是读写,以为是一样的,莫非这个即使区别? 

原创粉丝点击