请教怎么用文件流删除文本文件里的内容

Reed42 2014-04-14 09:52:42
写的一个程序,从文本里读出数据保存到类数组
然后现在要删除一行数据,数组里的我会删,可是文本里对应的那一行怎么删掉啊(不是变成空格)
能不能直接先全删掉然后再重新写入
在线等!
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-04-15
  • 打赏
  • 举报
回复
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
Qlaiaqu 2014-04-14
  • 打赏
  • 举报
回复
文件本身不提供删除中间一段数据的功能,原因很简单,删除中间的数据,后面的数据全部要往前移动来填空中间的空白,所以没有这种方法。最简单的自然是全部读出来,然后重写入文件。 如果文件很大,读一部分,写入另一个文件,然后,删除源文件,重命名新文件就行了
「已注销」 2014-04-14
  • 打赏
  • 举报
回复
文件流要么就是读取,要么就是读入,你说的删除是修改,文件流有修改好像只有二进制操作,不方便,如果文件不大可考虑清空再写入
turing-complete 2014-04-14
  • 打赏
  • 举报
回复
可以全部删除再重新写入,而且这也是一个比较可行的方案。
Gonefar 2014-04-14
  • 打赏
  • 举报
回复
如果是在linux下可以调用sed命令删除文件的一行。如果在windows下可以把除这一样以外的所有数据读出,再写到一个新的文件里(有点笨拙)。

64,647

社区成员

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

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