请问如果要在文件中插入一些内容应该怎么做?

zengkun100 2005-12-03 04:03:35
现在有一个文本文件,想在其中插入一些内容。我起初就是直接在欲插入内容的地方直接写文件,后来发现文件的内容被覆盖了。因为之前基本没有做过文件读写方面的操作,不知道写操作居然是这样的。
后来我新建了一个文件,把原来那个文件的一部分先拷贝到新文件中,然后在新文件里写那些要插入的内容,最后再把原文件的那一部分补上。
这样我觉得对付大文件的时候肯定要吃亏的,在文件的中间插入一部分内容到底怎么做比较好?
...全文
198 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodyun82 2005-12-06
  • 打赏
  • 举报
回复
guyanhun(天涯-明月 C++从头开始)
说的方法对按固定结构存的文件可以,但是对内容是乱七八糟的文件就不行了吧?
还是要用临时文件。
zoezinsser 2005-12-05
  • 打赏
  • 举报
回复
还是没明白大家所说的意思,好象说来说去和楼主的意思一样!
guyanhun 2005-12-05
  • 打赏
  • 举报
回复
相关函数:
int open(char *pathname, int access[, int permiss]); 打开一个文件用于读或写
int chsize(int handle, long size); 改变文件大小
long tell(int handle); 取文件指针的当前位置
int write(int handel, void *buf, int nbyte); 写到一文件中
long lseek(int handle, long offset, int fromwhere); 移动文件读/写指针
int close(int handle); 关闭文件句柄
guyanhun 2005-12-05
  • 打赏
  • 举报
回复
打开文件,定位要插入的位置p1,再定位到文件的结尾p2,
要插入的数据的大小s,改变文件的大小 用chsize函数,
改变后的大小是p2+s,再从p1开始把数据全部向后移动s位,
再定位回到p1,写人要插入的数据.再关闭文件.
roger_77 2005-12-03
  • 打赏
  • 举报
回复
楼上的,请详细点好吗?
说的东西太抽象了

严重关注中.

Jinhao 2005-12-03
  • 打赏
  • 举报
回复
将新的数据放在空闲的簇上,然后修改从插入处的簇信息,和新数据所在簇的信息。最后修改bitmap和文件大小和文件修改日期等信息。
csucdl 2005-12-03
  • 打赏
  • 举报
回复
文件操作就是读出来写回去的事情啊
qhfu 2005-12-03
  • 打赏
  • 举报
回复
做两个缓冲区吧
cunsh 2005-12-03
  • 打赏
  • 举报
回复
楼上没看清楚呀.他说的是 大文件 .
oyljerry 2005-12-03
  • 打赏
  • 举报
回复
读出来,改了,再写进去,或用临时文件,一般就这样~

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧