有没有办法打开一个文件,只改写它的一部分内容?而其他部分不变?
比如一个文件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);