c++ 修改文件中的一条数据(不完全读出再重新写入)

假设现在文件中存储的是 1 computer 2 computer 3 computer 三条记录,
我想把第一条数据改成 5 computer, 但是想要直接用write在文件首部写入5 computer
把1 computer 覆盖掉,而不是把数据全部读出后修改完再重新写入,就像c语言的
fwrite函数,不知如何操作?谢谢了

6个回答

http://bbs.csdn.net/topics/340168885

fwrite也可以用,也可以用windows api(windows下)的writefile

用fseek(FILE *fp,long offset,int pos)函数得到读写位置的指针其中offset是偏移量,pos是位置,0表示文件头,1表示当前位置,2表示文件尾,比如fseek(fp,2L,0)表示文件读写指针从文件开始处向后偏移2个字节。
此外,rewind(FILE *fp)可以复位文件读写指针到开头,ftell可以定位文件读写指针

如果是相同长度,直接覆盖就可以了。
如果比原来的短,补空格。
如果比原来的长,就比较麻烦,需要将后面的都读进来,写入新的,再将后面的写回去。

如果是写配置文件,建议用ini文件读写,参见:
http://www.cnblogs.com/qq78292959/archive/2012/06/10/2544389.html

记得打开时要用追加方式

http://bbs.csdn.net/topics/340168885

fwrite也可以用,也可以用windows api(windows下)的writefile

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!