您的位置:首页 > 运维架构

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

2011-02-21 19:56 363 查看
说是小问题,实际上还是给我带来了很大麻烦,编程中用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+也是读写,以为是一样的,莫非这个即使区别?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: