我有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]'索引的錯誤。 –