C语言中,怎么在一个文本文件中的指定位置插入数据而不会把后面的内容覆盖?

C语言中,怎么在一个文本文件中的指定位置插入数据而不会把后面的内容覆盖?,第1张

c语言并没有提供这样的库函数,需要自己写。

你写将要插入位置后面的文件内容读到缓冲,然后定位文件偏移量插入数据,在将读出来的写入。

因为文件在磁盘上是连续存放的,不可能说直接在中间插入内容而不覆盖原来的,别的语言提供的都是自己按照上述思路写的。或者除非有某些文件系统存放方式不同(但我没见过)。

文件头部插入很麻烦,有三种方法:

将f2.txt读出到内存;将f1.txt运算的结果写到f2.txt的头上,再续写f2.txt的原内容,注意打开f2.txt要用"rw"属性;

新键个f3.txt;将f1.txt运算的结果写入后,再读f2.txt写入,关闭f3.txt后将f2.txt删除,改f3.txt文件名为f2.txt。一般是这么做的。

最后一种避免改名,先打开f2.txt读,建立f3.txt,将f2.txt原样写入,然后f2.txt就可以从头覆盖写入f1.txt的处理结果,再读取f3.txt内容续写;最后删除f3.txt。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7939684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存