C++读取两个不同的输入文件
我在input.txt中列出了两个文件,我可以使用以下命令读取第一个文件: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
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两次,并在处理每一行之前检查以确保返回值为真?如何打开第二个文件并以与第一个不同的方式处理它?。我的解决方案就是这样。只要不提及下一个文件,我的解决方案对他们来说是一样好的。这是真的,很好的观点。我想我只是太担心“如果”了。