0
我試圖創建一個包含8行的.dat文件,第一行是記錄數,其餘7行包含將填充記錄的數據鏈表。C++:從文件中讀入數據以填充鏈接列表
我遇到的問題是我的代碼只填充第一條記錄,但使用cout我知道它正在經歷整個文件。下面是代碼,我的工作片斷:
fstream listBuilder;
listBuilder.open("HW06.dat");
if (listBuilder.is_open()) {
TeleType *current;
current = listHead;
listBuilder >> numberOfRecords;
while (listBuilder) {
string firstName;
string lastName;
string phone;
string name;
listBuilder >> firstName >> lastName >> phone;
name = firstName + " " + lastName;
current->name = name;
current->number = phone;
current = current->nextaddr;
current = new TeleType;
}
listBuilder.close();
} // end if
else {
cout << "***** Error: File failed to open. *****" << endl;
} // end else
要使鏈表工作,您需要鏈接節點。看起來你不是這樣做的。 – user4581301
與僅僅使用'List'並追加?用C++語義做一個C風格的列表構建很奇怪。否則,你沒有給你所有的代碼。 'listHead'? 'TeleType'?另外,如果你確定來自'numberOfRecords'的輸入,你可以循環。 –
在紙上繪製框和箭頭是使用指針調試代碼的最佳方式。 – molbdnilo