如何在C中替换文本文件中间的一行?

时间:2011-05-23 18:07:28

标签: c file replace text-files lines

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

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

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

程序编译并运行,但是当它替换文件中的信息时,它就没有做任何事情。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

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

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