您好,我想知道是否可以更新文本文件,我的意思是在不更改内容的情况下向所有行添加一些文本。假设一个像这样的文本文件。
A
B
C
D
E
F
G
我希望像这样更新(在所有行的第一个字符附近添加另一个字符)
A H
B I
C J
D K
E L
F M
G N
当我以追加模式打开文本文件并以各种方式使用fseek()
函数时,即使它可以在行中添加一些数据,但每次都会丢失一些数据。
我希望明白这个问题,如果你能提供帮助,我将不胜感激。无论如何,谢谢。
答案 0 :(得分:2)
通过C和POSIX文件操作访问的文件模型将文件显示为字节序列,并且没有插入操作。您只能写入现有字节(替换它们),在末尾添加新字节或截断文件。
要创建所需的输出,您必须写入新文件。读完输入文件后,可以将新文件移动到旧文件的路径,从而用新输出替换旧文件。
答案 1 :(得分:1)
最好的办法是简单地将所有数据读入内存,然后以所需的格式写出文件。有时为了可读性和可维护性而牺牲一点效率会更好。
答案 2 :(得分:0)
文本文件中“行”的概念实际上只意味着文件中有换行符('\ n')。
要在文本文件中的第一行元素之后添加数据,请找到要追加的字符,然后将数据放在该字符和下一个换行符之间。