【问题标题】:How to replace a line on the middle of a txt file in C?如何在C中替换txt文件中间的一行?
【发布时间】:2011-08-31 08:40:13
【问题描述】:

我正在从一个 txt 文件中读取信息(数字),然后我将添加到这些数字中,其他数字在另一个文件中,具有相同的结构。

文件中每一行的开头都有一个数字,用于标识特定产品。该代码将允许我在另一个文件中搜索相同的产品。在我的程序中,我必须将一个文件中的其他“变量”添加到另一个文件中,然后在其中一个文件的相同位置替换它。

我没有用aa+ 打开任何这些文件,我用rr+ 打开了这些文件,因为我想替换可能在中间的行中的信息文件,而不是在它的末尾。

程序编译并运行,但是当涉及到替换文件中的信息时,它什么也不做。

我应该如何解决这个问题?

【问题讨论】:

  • 发布一些代码。但一般情况下,您根本无法这样做,除非文件使用固定长度的记录。
  • 使用数据库而不是平面文件。
  • r 不是“替换”,而是“读取”。

标签: c file replace text-files lines


【解决方案1】:

程序可以替换(覆盖)文件中间的文本。但问题是这是否应该执行。

为了插入更大的文本或更小的文本(并缩小间隙),必须编写一个新的文本文件。这是假设文件不是固定宽度的。基本规则是在插入之前将所有原始文本复制到新文件中。写下新文本。最后写剩下的原文。这是很多工作,即使是最简单的程序也会减慢速度。

我建议您在进一步操作之前设计您的数据布局。也可以考虑使用数据库,看我的帖子:At what point is it worth using a database?

您的目标是设计数据以最大程度地减少重复和数据获取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2022-01-19
    • 2022-01-18
    相关资源
    最近更新 更多