首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有没有办法打开一个文件,只改写它的一部分内容?而其他部分不变?该怎么处理

2012-04-13 
有没有办法打开一个文件,只改写它的一部分内容?而其他部分不变?比如一个文件200个字节,我打开它,只改写从

有没有办法打开一个文件,只改写它的一部分内容?而其他部分不变?
比如一个文件200个字节,我打开它,只改写从第50个字节到100个字节的内容,其余部分不变。有办法吗?用什么方式打开这个文件?

普通的方法如wb方式打开这个文件,首先把它的长度截为零,也就是说原来的内容全部损失了,那为了达到我上述要求,就不得不保存原来的0到50的内容,再保存100到200的内容,再写进去,这样太麻烦。有没有办法直接改写50到100的内容而其他不变?文件长度也不变。

有办法吗?


[解决办法]
FILE *f;
char buf[51];
memset((void *)buf,'A',51);
f=fopen(...,"rb+");
fseek(f,50,SEEK_SET);
fwrite(buf,1,51,f);
fclose(f);

热点排行