Итак, я работаю над функцией, которая удаляет узел с тем же именем, что и чтение во входном файле. Если это соответствие, узел не должен быть добавлен в новую последовательность. Так Вот что у меня до сих пор, мой предыдущий указатель является недействительным в конце кода я понятие не имею, почемуУдаление узлов и изменение головы
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;
}
}
Предыдущий ptr глава нового списка? Previous имеет значение null, поскольку технически предыдущий ведет себя как ptr. Когда ptr идет дальше, предыдущий также идет дальше, и поэтому он, наконец, будет null, когда ptr будет null. –
Привет! Спасибо за ответ. когда я прокомментирую строку «предыдущий = предыдущий -> следующий», он сохраняет только последний узел, который понятен, потому что драгоценное не меняется. Надеюсь, это имеет смысл. – Priyanka
Это работало? Почему вы использовали предыдущий ptr? –