C ++如何将ifstream作为一个大文件追加到ifstream

时间:2017-07-21 18:19:08

标签: c++ fstream ifstream

我有分解成许多小文件的文件。例如,我有

file1的 文件2 ... file10

file1到file10只是一个分成10个文件。现在我想读取这10个文件,我想避免将10个文件合并在一起创建一个大文件,因为文件很大。我想一个接一个地读它们,好像它是一个大文件。

这就是我现在所拥有的,一次读取一个文件。

std::ifstream file(filePath, std::ios_base::in | std::ios_base::binary);
iostreams::filtering_istream input;
// check if the file is a .gz file by checking the file extension
if (filePath.compare(filePath.size() - 3, 3, ".gz") == 0)
{
  input.push(iostreams::gzip_decompressor());
}
input.push(file);

有没有办法追加多个ifstream,以便一个接一个地读取多个文件,就好像它们是一个大文件一样?

我想使用ifstreams,因为每个后续文件(文件2到10)都有4个我想跳过的元数据行。

非常感谢任何关于如何追加的帮助。

1 个答案:

答案 0 :(得分:0)

这个伪代码可以帮到你。

int main()
{
    // Get files Names (e.g. data1.txt)
    std::vector<std::string> filesNames;

    for( i < filesNames.size() ){
        // Open File 
        // Check if it is opened successfully.
        // Read data via while() loop
        // Close File
    }

    return 0;
}