fgets() w petli

0

Witam, mam problem z dzialaniem fgets w petli while, jeżeli choć raz wczytana z klawiatury nazwa kategorii nie jest poprawna nastepnie za kazdym razem (nawet przy podaniu poprawnej nazwy kategorii) wywala błąd, że taka kategoria nie istnieje.

while(1)
            {
                int znaleziono = 0;
                puts("Wybor (lub wpisz 'koniec' by zakonczyc gre): ");
                fgets(kat,40,stdin);
                kat[strlen(kat)-1]='\0';
                /*puts(kat);*/
                if(strcmp(kat,"koniec")==0)
                {
                    blokada = 1;
                    break;
                }
                while(it!=NULL)
                {
                    if (strcmp(it->pytania.kategoria,kat)==0)
                    {
                            znaleziono = 1;
                            it->wziete=1;
                            break;
                    }
                    it = it->next;
                }
                if(znaleziono==1)
                {

                    znaleziono=0;
                    break;
                }
                else
                    puts("Nieprawidlowa nazwa kategorii!");

            }
0

Napisz kod całej funkcji, jak możesz.

0

Przed while(it!=NULL) musisz to it zresetować na początek listy, inaczej za drugim razem może nić nie znaleźć.
Właściwie to radzę przerobić na for(it=???;it;it=it->next)

0

Dzieki, brakowało właśnie przejścia na początek listy w przypadku błędnej odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1