首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Filestreams删除一行文本(C++)

用Filestreams删除一行文本(C++)
EN

Stack Overflow用户
提问于 2012-05-14 02:00:13
回答 1查看 1K关注 0票数 3

我有一个大的文本文件。

每次我的程序运行时,它都需要在第一行中读取,删除它,并将数据放回文件的底部。

是否有一种方法可以完成此任务而不需要读取文件的每个部分?

学习这个伪代码的例子将是很好的:

  1. Open文件流用于读取/写入2. data =第一行文件3.从文件中删除第一行<--我可以这样做吗? 4.关闭文件流5.打开文件流用于追加6.将数据写入文件7.关闭文件stream

我试图避免阅读所有内容的原因是因为程序每天都在特定的时间运行。我不希望每次文件越大,延迟越长。

我找到的所有解决方案都要求程序处理整个文件。如果C++文件流无法完成这一任务,那么对于我的C++程序来说,无论哪种选择都是快速高效的执行,我都准备好了。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-14 02:03:27

不幸的事实是,现代操作系统上没有任何文件系统能够做到这一点。从文件开头删除某些内容的唯一方法是将内容复制到新文件,但第一位除外。根本没有办法精确地做你想做的事。

但希望你能重新设计一下。也许每个条目都可以是一个数据库中的记录--然后重新排序可以非常有效地完成。或者该文件可能包含固定大小的记录,您可以使用第二个索引文件来指定记录顺序,因此重新排列文件只是更新索引的问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10576771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档