【发布时间】:2023-03-28 03:32:01
【问题描述】:
我的问题类似于this,但我没有找到任何针对此问题的 C++ 参考。
有一个要读取和处理的大文件列表。创建一个输入流的最佳方法是从文件中逐个获取数据,在前一个文件结束时自动打开下一个文件?该流将被提供给一个处理函数,该函数跨文件边界顺序读取可变大小的块。
【问题讨论】:
-
嗯,“Unixy”方式是将您的程序编写为过滤器(即,它从标准输入读取并写入标准输出),然后使用现有的构建块,如
cat input_file*.dat | myprogram。但是如果没有更多细节(即文件是否都在一个目录中,并且名称是全局的,或者它们是否分布在不同的地方,或者顺序需要不同),很难说比这更多...... -
您可以创建一个派生自
std::istream的新类,其中包含std::vector或std::ifstream,在 EOF 或读取失败时自动切换到下一个 -
将它们收集到缓冲区文件中,然后再读取它们?所以一个两部分操作