Chciałam zrobić proste menu za pomca do while i switch. Jednak jak ktoś wpisze opcję której nie ma uwzględnionej przez program (np. literę) , pętla zaczyna się obracać w kólko, bez końca. Jak mogę się przez tym zabezpieczyć?
void menu(DANE_T **mac1r, DANE_T **mac1i, int l_w1, int l_k1, DANE_T **mac2r,
DANE_T **mac2i, int l_w2, int l_k2) {
int wybor, wybor_wynik;
do {
printf("Wybierz dzialanie:\n0.Wyjscie. 1.Wczytywanie. 2.Wypisywanie. 3.Dodawanie. \n4.Odejmowanie. 5.Mnozenie. \n");
wybor_wynik = scanf("%d",&wybor);
if (wybor_wynik != 1) {
printf("Zly wybor!\n");
wybor = 6;
} /* zabezpieczyc menu przez zlym wyborem!!!!*/
printf("\n");
switch (wybor) {
case 0:
/* dodac zwalnianie pamieci*/
printf("Koniec programu!\n");
break;
case 1:
alokuj_macierze(&mac1r, &mac1i, l_w1, l_k1, &mac2r, &mac2i, l_w2, l_k2);
wczytywanie(mac1r, mac1i, l_w1, l_w2, mac2r, mac2i, l_k1, l_k2);
break;
case 2:
wypisywanie_macierzy(mac1r, mac1i, l_w1, l_k1, mac2r, mac2i, l_w2, l_k2);
break;
case 3:
;
case 4:
;
case 5:
;
case 6:
printf("Zly wybor!\n");
wybor_wynik = scanf("%d",&wybor);
break;
default:
break;
}
} while ( wybor != 0);
} /* menu */