C ++附加到现有文件

时间:2016-12-22 20:25:18

标签: c++ fstream ofstream

我试图从多个文件中获取数据并使用fstream将它们附加到一个文件中,但每当我尝试使用

输出到现有文件时
 std::ofstream Out("mushroom.csv", std::ofstream::app);

它输出到文件的末尾,我希望它附加到同一行,例如,如果这是以前的文件:

 1,2,3,4,5,6,7
 8,9,10,11,12,13

我希望它成为:

 1,2,3,4,5,6,7,a,b,c
 8,9,10,11,12,13,c,d,e

1 个答案:

答案 0 :(得分:1)

你不能。文件没有真正的行,它们只存储一堆字符/二进制数据。当你有

1,2,3,4,5
6,7,8,9,0

它看起来只是因为那里有一个不可见的字符,告诉它将第二行写入第二行。文件中的实际数据是

1,2,3,4,5\n6,7,8,9,0

因此,您可以看到文件的结尾位于0之后,并且在5之后需要搜索到文件的中间位置。

解决这个问题的方法是将文件的每一行读入某个容器,然后将数据添加到每行的末尾。然后你会把整个事情写回文件替换原始内容。