首页 > 解决方案 > 将 3 个文件合并在一起,在合并相同的三个文件时可以正常工作,但是当合并 3 个不同的文件时,它不想读取第 3 个文件

问题描述

所以标题说明了一切,我试图将 3 个单词列表连接在一起,但是由于某种原因它不想阅读第三个列表,

第一个词表单词:

南德

第二个单词表单词:

也不

消极的

第三个单词表单词:

异或

void merge3(string MFile3)
{

string file1name, file2name,file3name, outfilename, word1, word2, word3;
cout << "Enter name of first file: ";
cin >> file1name;
cout << "Enter name of second file: ";
cin >> file2name;
cout << "Enter name of third file: ";
cin >> file3name;
cout << "Enter name of output file: ";
cin >> outfilename;


ofstream inFileFour(outfilename.c_str());

ifstream inFileOne(file1name.c_str());
while (inFileOne >> word1) {
    ifstream inFileTwo(file2name.c_str());
    

    while (inFileTwo >> word2) {

        ifstream inFileThree(file2name.c_str());
    
        while (inFileThree >> word3) {
            

            inFileFour << word1 << word2 << word3 << endl;

        }
        inFileThree.close();
    }

    inFileTwo.close();
    
}
inFileOne.close();
inFileFour.close();

}

有错误的单词列表,前 2 个单词列表显示但不是第 3 个

具有所有可能组合的单词列表期望与文件

1

如果有人可以让我知道这里发生了什么,那就太好了,我愿意接受建议。

标签: c++string-concatenation

解决方案


第三个文件永远不会被读取,您正在再次读取第二个文件:

ifstream inFileThree(file2name.c_str());

推荐阅读