0
我的問題的要點是我正在讀取一個文件,其中除了行尾之外由#分隔的文件。當我查看我正在閱讀的書籍結構(使用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 2013-03-15 19:26:32