这个问题已经在这里有了答案:
9年前关闭。
为什么不能使用一个ifstream变量来打开一个文件,读取它,然后关闭它,然后再打开另一个文件,读取和关闭,等等?
它在代码中的外观如何(让我们说每个文件内部都有一个整数):
int k, l;
ifstream input1;
input1.open("File1.txt");
input1 >> k;
input1.close();
input1.open("File2.txt");
input1 >> l;
input1.close();
解决问题的唯一方法是创建另一个ifstream变量。
最佳答案
您可以使用相同的变量,需要在重用对象之前调用.clear()
清除对象的标志:
int k,l;
ifstream input1;
input1.open("File1.txt");
input1 >> k;
input1.close();
input1.clear();
input1.open("File2.txt");
input1 >> l;
input1.close();
input1.clear();
但我建议您不要重复使用它们。如果您不想一次拥有多个变量,可以将每个变量保留在自己的范围内:
int k,l;
{
std::ifstream input1("File1.txt");
input1 >> k;
}
{
std::ifstream input1("File2.txt");
input1 >> l;
}
关于c++ - 使用一个ifstream变量读取多个文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8137073/