0

您好我想知道是否可以更新文本文件,我的意思是在不更改内容的情况下向所有行添加一些文本。假设一个像这样的文本文件。

A
B
C
D
E
F
G

我想这样更新(在所有行的第一个字符附近添加另一个字符)

A   H
B   I
C   J
D   K
E   L
F   M
G   N

当我以附加模式打开一个文本文件并fseek()以各种方式使用函数时,即使它可以在行中添加一些数据,最后的一些数据每次都会丢失。

我希望它清楚地理解这个问题,如果你能提供帮助,我将不胜感激。不管怎么说,还是要谢谢你。

4

3 回答 3

2

通过 C 和 POSIX 文件操作访问的文件模型将文件呈现为字节序列,并且没有插入操作。您只能覆盖现有字节(替换它们)、在末尾添加新字节或截断文件。

要创建您想要的输出,您必须写入一个新文件。读取完输入文件后,您可以将新文件移动到旧文件的路径,从而用新输出替换旧文件。

于 2012-10-09T18:28:15.437 回答
1

最好的办法是简单地将所有数据读入内存,然后以所需格式写出文件。有时为了可读性和可维护性牺牲一点效率会更好。

于 2012-10-09T18:30:08.263 回答
0

文本文件中“行”的概念实际上只是意味着文件中有换行符(“\n”)。

要在文本文件中一行的第一个元素之后添加数据,请找到要在其后附加的字符,然后将数据放在该字符和下一个换行符之间。

于 2012-10-09T17:59:06.150 回答