繁体   English   中英

C ++文本文件:写入特定行的末尾

[英]C++ Text File: Writing to the end of a specific line

我正在尝试创建一个程序,可以在其中将字符串写入文本文件中某一行的末尾。

例如,这是只有一堆随机数的文本文件:

12 23
53 23

现在,如果我有一个在第一行(或任何指定的行)的末尾添加另一个两位数的程序,请记住,如果我继续运行该程序,该行将继续扩展。

因此,在运行程序之后,文本文件将如下所示:

12 23 34
53 23

有什么方法可以解决这个问题?

如果我理解这个问题,那是不可能的。 问题是,如果您延长一行,则会覆盖下一行。 您似乎期望以下几行向下移动以腾出空间,但这不是它的工作原理。

除非文件很大,否则最好的方法是将文件加载到内存中,修改内存中的数据,然后创建一个新文件以保存结果。 (如果需要,您可以保存到同一文件。)

其他算法包括使用固定大小的块,并在文件中具有链接列表,但这听起来像您希望文件是普通文本,因此这些文件可能无法正常工作。

您永远不要尝试在适当位置编辑文本文件。 最常见的方法是将编辑后的文件写入一个临时位置,最后将其重命名为旧名称(在删除原始文件之后)。

另一种方法是(假设文件足够小)将所有内容加载到内存中并从头开始重写文件。 但是绝对不要对敏感文件执行此操作,因为如果程序(或计算机或电源)在中间崩溃,则文件肯定会丢失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM