假设现在文件中存储的是 1 computer 2 computer 3 computer 三条记录,
我想把第一条数据改成 5 computer, 但是想要直接用write在文件首部写入5 computer
把1 computer 覆盖掉,而不是把数据全部读出后修改完再重新写入,就像c语言的
fwrite函数,不知如何操作?谢谢了
http://bbs.csdn.net/topics/340168885
fwrite也可以用,也可以用windows api(windows下)的writefile
http://bbs.csdn.net/topics/340168885
用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