我试图从多个文件中获取数据并使用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
答案 0 :(得分:1)
你不能。文件没有真正的行,它们只存储一堆字符/二进制数据。当你有
1,2,3,4,5
6,7,8,9,0
它看起来只是因为那里有一个不可见的字符,告诉它将第二行写入第二行。文件中的实际数据是
1,2,3,4,5\n6,7,8,9,0
因此,您可以看到文件的结尾位于0
之后,并且在5
之后需要搜索到文件的中间位置。
解决这个问题的方法是将文件的每一行读入某个容器,然后将数据添加到每行的末尾。然后你会把整个事情写回文件替换原始内容。