我正在尝试获取一个包含8行的.dat文件,第一行是记录数,其余7行包含将填充链表的记录数据。
我遇到的问题是我的代码只填充第一条记录但是使用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
答案 0 :(得分:1)
您应首先创建下一个节点,然后指向它,而不是相反!
current->nextaddr = new TeleType;
current = current->nextaddr;