2017-07-21 55 views
0

我有許多分成許多小文件的文件。例如,我有C++如何附加ifstream將多個文件作爲一個大文件讀取

文件1 文件2 ... file10

文件1到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); 

有沒有一種方法追加多個ifstreams爲了讀取多個文件中的一個,就好像它們是一個大文件後,其他?

我想使用ifstreams,因爲每個後續文件(文件2到10)都有4個我想跳過的元數據行。

任何幫助如何追加是非常感激。

+0

通過他們創建一個文件矢量循環。我不明白你面臨的困難是什麼。 – CroCo

回答

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; 
}