我有2个文件夹的名称vector <myClass> vec_fileNames;
这是我从其中包含2线fileNames.txt
阅读充满字符串矢量:C++:使用循环打开文件
首先
二
ifstream inFile("c:/file names.txt");
if(!inFile)
{
cout << "File Not Found!\n";
inFile.close();
}
else
{
string line;
myClass class;
while (getline(inFile, line))
{
class.setFileName(line);
vec_fileNames.push_back(class);
}
所以,在这一点上我vec_fileName[0].getFileName
=第一个和vec_fileName[1].getFileName
=第二
现在我想打开的文件夹内的文件谁的名字都在矢量在一个循环中,所以我这样做:
for(int i = 0; i < vec_fileNames.size(); i++)
{
string fileName = vec_fileNames[i].getFileName();
ifstream inFile("C:/Program Folder\\" + fileName + "goalFile.txt");
if(!inFile)
{
cout << "File Not Found!\n";
inFile.close();
}
else
{
while (getline(inFile, line))
{
//do something
}
}
到目前为止,一切都只是没有被打开的文件好。这甚至可以用C++来完成,或者在打开文件时出现错误吗?
为什么你总是使用'vec_fileNames [0]'?它不应该是'vec_fileNames [i]'? – MikeCAT
看起来像你在Windows上运行这个。你的字符串不会是'“C:\ Program Folder \\”+ fileName +“goalFile.txt”'int case? –
考虑使用基于循环的范围 - 它更具可读性,避免了像真的只需要当前元素时总是访问相同的[[0]'索引的错误。 –