
Сообщение от
byshido
Добавил условие, написанное вами все вроде заработало только одно, но, он почемуто удаляет все записи... т.е. я добовляю три книжки, произвожу поиск и удаление...удаляю смотрю что осталось и все...мне показывает ноль
Шас перепешу на switch
а все идет от той же ошибки.
если 'y' упорно держится в потоке и к возвращению в маин, то он постоянно считывается и в этом цикле и удаляет все записи поочереди.
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| while (root)
{
if (!strcmp(qwe,root->Library->nomer))
{
{
printLIBRARY(root->Library);
cout<<"Do you want clear this entries? (y/n) "<<endl;// Удаление записи
cin.getline(q,1);
if (!strcmp(q,"y"))
{
root->Library=NULL;
}
root=root->next;
}
}
else if (strcmp(qwe,root->Library->nomer))
root=root->next;
} |
|
вам надо переписать алгоритм считывания символа. Попробуйте вот так:
C++ |
1
2
3
4
5
| char c;
cin.get(c);
if(c=='y') /* */
//и в конце функции надо считать символ перехода на новую строку, а то он так и останется в потоке
while(cin.get(c) && c!='\n'); |
|