switch - nieskonczona petla

0

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 */
0

Dzięki. Przeszukalam tylko subforum, a nie pomyślałam o FAQ.

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