【问题标题】:C++ append to existing file [duplicate]C ++追加到现有文件[重复]
【发布时间】:2016-12-22 20:25:17
【问题描述】:

我正在尝试从多个文件中获取数据并使用 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

【问题讨论】:

  • 欢迎来到 Stack Overflow。请花时间阅读The Tour 并参考Help Center 中的材料,您可以在这里问什么以及如何问。
  • @πάνταῥεῖ 这确实属于可以问的问题,它没有主观答案,也不是“健谈”或开放式的,这是我面临的真正问题......跨度>
  • 我看不出你一直在阅读该材料。
  • 您可以提供一些源代码,帮助我们给您一个合格的答案。顺便说一句,这个问题似乎在这里有答案:stackoverflow.com/questions/2393345/…

标签: c++ fstream ofstream


【解决方案1】:

你不能。文件实际上没有行,它们只是存储一堆字符/二进制数据。当你有

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多