Суть моей проблемы в том, что я читаю файл с полями, разделенными #, за исключением конца строки. Когда я смотрю на утверждения печати для полей, которые я читаю в книжной структуре (которая использует цикл for для прохождения через весь файл данных/список книг (теоретически)), все они имеют одинаковое значение. Например, есть 200 одинаковых идентификаторов, за которыми следует 200 одинакового названия, вместо того, чтобы читать дальше файл данных.C++ getline() перезагрузка перед чтением всего файла
Точный код:
void loadTable(book table[], int size){
for (int i = 0; i < size; i++){
book newBook;
ifstream ifs("inventory.txt");
string bit;
getline(ifs, bit, '#');
newBook.bookId = atoi(bit.c_str());
cout << "BookID: " << newBook.bookId;
getline(ifs, bit, '#');
newBook.title = bit;
cout << "Title: " << newBook.title;
getline(ifs, bit, '#');
newBook.author = bit;
getline(ifs, bit, '#');
newBook.cost = atof(bit.c_str());
getline(ifs, bit, '#');
newBook.price = atof(bit.c_str());
getline(ifs, bit);
newBook.quantity = atoi(bit.c_str());
loadBook(table, newBook, size);
}
}
И точный результат:
tiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Tale of Two
CitiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Tale of Tw
o CitiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Tale of
Two CitiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Tale o
f Two CitiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Tale
of Two CitiesBookID: 116807Title: A Tale of Two CitiesBookID: 116807Title: A Ta
...
Упс. В следующий раз я сделаю перерыв, когда у меня возникнут проблемы, и, возможно, это будет более очевидно. – user963070