如何在文件中的特定行上写?

时间:2013-05-07 15:59:08

标签: c++ file file-io

我想在现有文件上写一些数据。它是一个包含大约8-10行标题(#comments)和数千行data values的文件。我想要的是保持标题相同,但将更新的data values添加到文件中。很可能在更新后我的data values行数较少。

所以基本上我想删除标题中最后一个#comment之后的所有内容,然后从那里开始写新值。这可能吗?

以下是一个例子:

  

原始文件

#Program
#Date
#Hello
0 23 23 54
1 12 4 2
2 253 786 9887
3 3 23 54
4 1 4 4
5 23 6 81
  

更新文件

#Program
#Date
#Hello
0 2 23 54
2 253 786 9887
5 23 6 81

我正在编辑的代码使用fopen来读取文件,使用fprintf来写入文件。我希望如果答案是这样的,那么我就不必改变这两个。

2 个答案:

答案 0 :(得分:6)

我提出的最简单的方法是打开Original File,读取并将标题复制到内存中,例如string header。然后写入header,然后写入新数据

,覆盖整个文件

答案 1 :(得分:2)

编写一个函数,从文件中读取标题并将它们存储到类/变量/结构中。

编写一个将标题写入文件的函数

编写一个将所需值写入文件的函数

按该顺序执行所有三个功能。它与您覆盖的文件相同的事实无关紧要,请务必在写回之前将其关闭