C++追加到现有文件

C++ append to existing file

我正在尝试使用 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

你不能。文件实际上没有行,它们只是存储了一堆 characters/binary 数据。当你有

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

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

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

所以你可以看到文件的结尾在 0 之后,要在 5 之后,你需要寻找到文件的中间。

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