怎么在.txt文件中的某一行中插入一行?

dingling730 2011-08-19 02:43:59
rt~
...全文
831 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jernymy 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhao4zhong1 的回复:]
文件大小不超过500MB的话,全部读入内存,插入,将内存中内容全部写到文件中。
[/Quote]

支持
tyr 2011-08-19
  • 打赏
  • 举报
回复
文本文件不行,其他格式的能否在任意行插入?
像图片文件生成的数组很大,全部读出再写入比较慢,尤其是平台硬件不是很高级的情况。
cao_julians 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jokul_lee 的回复:]
先找到位置,然后拿出后面的东东,把想插的插进去,完事再把后面的东东补上。
[/Quote]
再细一点:
打开原文本文件,找到插入点,
打开一临时文件,
从原文本文件中读,向临时文件写,直至原文本文件尾,
在原文本文件,重新找到插入点,写入新内容,
从临时文件头开始读,向原文本文件写,直至临时文件尾。
================================================
两个文件都要读和写,打开方式你应该知道的。
jonasWu 2011-08-19
  • 打赏
  • 举报
回复
fopen_s(&pf, pszOut, "r+b");	

// 结果写文件
fseek(pf, nPos, SEEK_SET);
fwrite(buf, sizeof(type), nLen, pf);

// 关闭文件句柄
fclose(pf);
awen12345678 2011-08-19
  • 打赏
  • 举报
回复
太大的话,就读出来,写新文件,删旧文件。
Jokul_Lee 2011-08-19
  • 打赏
  • 举报
回复
先找到位置,然后拿出后面的东东,把想插的插进去,完事再把后面的东东补上。
QQ515311445 2011-08-19
  • 打赏
  • 举报
回复
一条路,读出来,写进去
一叶之舟 2011-08-19
  • 打赏
  • 举报
回复
把要插入后面的读出来,插入后再将后面的写进去。
yby4769250 2011-08-19
  • 打赏
  • 举报
回复
有多少行就geiline多少次,然后,在读出的内容中,插入一行,最后,把内容写回文件,覆盖掉。
只能这样做,正则表达式也无法定位第一行啊
赵4老师 2011-08-19
  • 打赏
  • 举报
回复
文件大小不超过500MB的话,全部读入内存,插入,将内存中内容全部写到文件中。
qianfoyuan 2011-08-19
  • 打赏
  • 举报
回复
先把文本所有内容全读出来 fread函数,然后查找要插入行的位置strstr函数,把上面读出来的字符串分成两部分,再用_sprintf或strncat等函数,拼接起来,再存储文本文件中.
gykgod 2011-08-19
  • 打赏
  • 举报
回复
用getline 一次获取一行
dingling730 2011-08-19
  • 打赏
  • 举报
回复
可是文件内容很大!!!
bdmh 2011-08-19
  • 打赏
  • 举报
回复
先读出来,增加新的,再把剩下的追加
luciferisnotsatan 2011-08-19
  • 打赏
  • 举报
回复
文本文件里不能插入。只能覆盖。
即把之后的数据再写一边。

64,676

社区成员

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

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