有没有办法可以寻找文件中的某一行来读取或写入数据?
假设我想在文本文件的第10行开始写一些数据。前几行中可能已有一些数据,或者文件甚至可能为空。有没有办法可以直接找到我想要的行,而不必担心文件中已有的内容?
答案 0 :(得分:6)
仅当行的长度相同时(寻找9 * bytes_per_line
)。否则,您只需要扫描到文件中的适当位置即可。
还要小心写入文件的中间位置。它可能无法达到您的预期(插入新行)。它只会覆盖已存在的任何内容,并且不会尊重现有的行边界。
答案 1 :(得分:5)
您可以搜索文件中的某个位置,但该位置必须是偏离开始,结束或当前位置的字符 - 请参阅例如fseek()。除非所有线都具有完全相同的长度,否则无法寻找特定的线。
答案 2 :(得分:1)
不,您必须处理数据才能找到行分隔符(除非您有固定的长度行)。看看getline(),ftell()和fseek()。 http://www.pixelbeat.org/programming/readline/cpp.cpp
答案 3 :(得分:0)
最简单的方法是读取内存中的文件,例如字符串向量中的每一行,然后修改/添加你想要的任何内容,并在新文件中重写每一行。
(假设文件适合内存)