好的,所以我正在开发一个删除与读入输入同名的节点的函数。如果匹配,则不能将该节点添加到新序列中。 所以我到现在为止,我的前一个指针在代码末尾是空的我不明白为什么
void deleteRecord (ifstream &batchfile, node *&h)
{
ofstream logfile;
logfile.open("freeplay.log", ios::app);
node *ptr = h;
node *previous = nullptr;
string term;
batchfile.seekg(1L, ios::cur);
getline(batchfile, term);
while (ptr)
{
if (!strstr(ptr -> name.c_str(), term.c_str()))
{
previous = ptr;
}
previous = previous -> next;
ptr = ptr -> next;
}
}
答案 0 :(得分:0)
while (ptr)
{
if (!strstr(ptr -> name.c_str(), term.c_str()))
{
if(previous = nullptr){
previous = ptr;
head_previous = previous;
} else {
previous->next = ptr;
previous = previous -> next;
previous->next = null;
}
}
ptr = ptr -> next;
}
在这里,无论何时执行,我都会分配previous to ptr
。第一次previous is same as ptr.
从下一次开始,我正在关联previous -> next to ptr.
现在循环之后,您可以打印头部为previous_head
;