【发布时间】:2013-05-07 15:59:08
【问题描述】:
我想在一个已经存在的文件上写一些数据。它是一个包含大约 8-10 行标题(# cmets)和数千行 data values 的文件。我想要的是保持标题相同,但将更新的data values 添加到文件中。很有可能更新后data values的行数减少了。
所以基本上我想擦除标题中最后一个 # 注释之后的所有内容,然后从那里开始写入新值。这可能吗?
这是一个例子:
原始文件
#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 写入文件。如果答案是这样的话,我会更喜欢这样,这样我就不必改变这两个。
【问题讨论】:
-
你为什么使用
fopen?在 C++ 中,您应该使用std::fstream。 -
我正在开发的软件使用 fopen。
-
嗯...如果使用
getline会更容易;) -
我知道。我试过了,但软件太大了,我无法改变它。如果我使用 fopen 以外的其他东西,很多其他东西都不起作用。