C语言 怎么替换文件中的某一段

存储的是结构变量,我现在将结构变量的内容修改了,想要覆盖先前存进去的结构变量,应该采用什么办法呢?用fseek切换到指定位置写入会不会覆盖原有内容呢?... 存储的是结构变量,我现在将结构变量的内容修改了,想要覆盖先前存进去的结构变量,应该采用什么办法呢?
用fseek切换到指定位置写入会不会覆盖原有内容呢?
展开
 我来答
White_MouseYBZ
2016-07-02 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6689万
展开全部

比较稳妥的办法是:

  1. 写方式创建一个临时文件。

  2. 将原文件逐字向临时文件拷贝,拷到你要替换的内容处,转而拷贝要替换的新内容;新内容拷完后,将原文件的读指针移动到要删除的内容之后,接着继续拷贝,直到文件结束。

  3. 关闭打开的两个文件,删除原文件,将临时文件更名为原文件名。

       为什么要这么做呢?因为你修改的部分的文件块大小新旧可能不一致,不好操作。若是大小严格一致的,则可以用随机访问函数移动指针,直接写到原文件要修改的地方覆盖原数据却可。

电影讲谈社
2016-07-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:3994
采纳率:40%
帮助的人:2097万
展开全部
你的目的不就是覆盖原有内容?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式