C++读取两个不同的输入文件

C++读取两个不同的输入文件,c++,file-io,C++,File Io,我在input.txt中列出了两个文件,我可以使用以下命令读取第一个文件: while (getline(inFile, name)) { datFile.open(name, ifstream::in); ... } 但是当它处理完datFile后,它会返回并尝试打开另一个文件,这是在input.txt中列出的第二个文件,我不想以同样的方式处理它。如何打开第二个文件并以与第一个不同的方式处理它 谢谢。可能是: int idx = 0; while (getline(inFil

我在input.txt中列出了两个文件,我可以使用以下命令读取第一个文件:

while (getline(inFile, name))
{
    datFile.open(name, ifstream::in);
    ...
}
但是当它处理完datFile后,它会返回并尝试打开另一个文件,这是在input.txt中列出的第二个文件,我不想以同样的方式处理它。如何打开第二个文件并以与第一个不同的方式处理它

谢谢。

可能是:

int idx = 0;
while (getline(inFile, name))
{
    if (idx == 0)
    {
       datFile.open(name, ifstream::in);
       ...
    } else
    {
       ...
    }
    idx++;
}
可能是这样的:

int idx = 0;
while (getline(inFile, name))
{
    if (idx == 0)
    {
       datFile.open(name, ifstream::in);
       ...
    } else
    {
       ...
    }
    idx++;
}

如果保证input.txt文件infle中有两个文件,请将getline从while循环中删除。。。调用它一次以获取第一个文件,处理它,然后再次调用它并在第一个文件完成后处理第二个文件


或者,您可以使用break在处理完datFile后立即退出while循环。。。但从逻辑上讲,这并不合理。

如果保证input.txt文件infle中有两个文件,请将getline从while循环中删除。。。调用它一次以获取第一个文件,处理它,然后再次调用它并在第一个文件完成后处理第二个文件

或者,您可以使用break在处理完datFile后立即退出while循环。。。但从逻辑上讲,这并不合理。

必须有三个ifstream对象

或者,如果不希望保持文件打开,请将最后三行改写为:

file1.open(fileName1, open as you ilke);
process file1;
file1.close();   

file2.open(fileName2, open as you like);
process file2;
file2.close();   
在第二个场景中,您可以使用相同的ifstream对象。

您必须有三个ifstream对象

或者,如果不希望保持文件打开,请将最后三行改写为:

file1.open(fileName1, open as you ilke);
process file1;
file1.close();   

file2.open(fileName2, open as you like);
process file2;
file2.close();   

在第二个场景中,您可以使用相同的ifstream对象。

注意:这将处理第一个文件之后的任何文件,该文件与else逻辑一起列出。如果保证有两行作为输入,为什么不在while循环外调用getline两次,并在处理每一行之前检查以确保返回值为真?如何打开第二个文件并以与第一个不同的方式处理它?。我的解决方案就是这样。只要不提及下一个文件,我的解决方案对他们来说是一样好的。这是真的,很好的观点。我想我只是太担心“what-ifs”了。注意:这将处理在第一个文件和else逻辑列出之后的任何文件。如果保证有两行作为输入,为什么不在while循环外调用getline两次,并在处理每一行之前检查以确保返回值为真?如何打开第二个文件并以与第一个不同的方式处理它?。我的解决方案就是这样。只要不提及下一个文件,我的解决方案对他们来说是一样好的。这是真的,很好的观点。我想我只是太担心“如果”了。