2016-08-03 8 views
-2

Я хочу, чтобы моя программа могла запомнить, где она остановилась в файле .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; 
 
}

+4

Почему вы закрываете файл? –

+4

Как насчет: не закрывать и не открывать файл каждый раз? – immibis

+0

@Mooing Duck Да, но когда я вынул заявление, возникла та же проблема. – ntjess

ответ

3

Откройте файл, прежде чем использовать его и закрыть его после того, как вы закончите его использования. Проблема в том, что вы постоянно закрываете входной файл, поэтому, когда вы его снова открываете, он начинается с начала снова.

Вы должны только открыть и закрыть файл ввода один раз.

+0

Хорошо, спасибо. Означает ли это, что я должен открыть и закрыть файл в основном? – ntjess

+0

Потому что я сталкиваюсь с проблемами в сфере видимости:/ – ntjess

+0

Open yes. Он будет закрываться, когда он выходит за рамки. – user4581301