Я хочу, чтобы моя программа могла запомнить, где она остановилась в файле .txt
, чтобы перейти к следующему вводу при повторении через цикл. Например, текстовый файл, содержащий:Как сообщить программе, с которой начать чтение .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;
}
Почему вы закрываете файл? –
Как насчет: не закрывать и не открывать файл каждый раз? – immibis
@Mooing Duck Да, но когда я вынул заявление, возникла та же проблема. – ntjess