我希望我的程序能够记住它在.txt
文件中的位置,以便在循环重复时继续进行下一个输入。
例如,包含以下内容的文本文件
Apples
Bananas
Oranges
将通过函数GetItem()
访问,该函数将下一个文件输入附加到项目向量中。如何使函数第一次添加Apples
,第二次添加Bananas
,第三次添加Oranges
?截至目前,每次调用GetItem()
都会不断向向量添加第一个元素,并给出一个包含以下内容的向量:
Apples
Apples
Apples
因为文件从头开始保持打开状态。任何帮助将不胜感激。
这是我可以包含的大量代码的简化版本,但会分散问题的主要目的。如果需要代码,我很乐意将其包含在内。
vector<Item*> AddItemToInventory(vector<Item*> inventory) {
if (inptLctn == 'f') {
inptFile.open("TestFood.txt");
if (!inptFile.is_open()) {
cout << "Could not open file." << endl;
exit(1);
}
inptFile >> usrInptName;
inptFile >> usrInptQnty;
inptFile >> usrInptExpr;
inptFile >> usrInptPrice;
}
prdc = new Produce;
prdc->SetName(usrInptName);
prdc->SetQuantity(usrInptQnty);
prdc->SetExpiration(usrInptExpr);
prdc->SetPrice(usrInptPrice);
inventory.push_back(prdc);
return inventory;
}
答案 0 :(得分:3)
在使用之前打开文件,并在使用完毕后关闭它。问题是你不断关闭输入文件,所以当你重新打开它时,它会再次从头开始。
您应该只打开和关闭输入文件一次。