Zabezpieczenie się przed wpisaniem cyfry innej niż (tu dana cyfra)

0

Hej. Piszę program, gdzie za pomocą wyboru pomiędzy cyframi 1, 2 lub 3 wybieram jakieś opcje. Zabezpieczyłem się przed wpisaniem innych niż ta za pomocą kodu:

do
{
...
}while (wybor != 1 && wybor != 2 && wybor != 3);

i całkiem dobrze to działa, ale jeśli wpisze jakąś literę, program zapętla się. Jak ustrzec się przed wpisaniem liter i innych znaków?
Wybór zdefiniowałem jako int
Dodatkowo, skoro już zakładam temat, moglibyście mi powiedzieć jak przy kilku wariantach w pętli while nie pisać za każdym razem "wybór != coś tam"?

0

kilku wariantach w pętli while nie pisać za każdym razem "wybór != coś tam"?

Prosto; zastosować kolekcję: https://4programmers.net/Forum/Newbie/316940-problem_z_petla_while_z_trzema_warunkwami_petla_dziala_niezaleznie?p=1532255#id1532255

A co do odczytu możliwości wyboru to czytaj po prostu char zamiast int'a. Będzie prościej, bo nie trzeba będzie sprawdzać czy to jest prawidłowy int tylko zwyczajnie sprawdzisz czy jest to prawidłowy znak i tyle.

0
r.pszczolkowski napisał(a):

Jak ustrzec się przed wpisaniem liter i innych znaków?

Pobieraj z klawiatury znak lub ciąg znaków, a nie liczbę.

Dodatkowo, skoro już zakładam temat, moglibyście mi powiedzieć jak przy kilku wariantach w pętli while nie pisać za każdym razem "wybór != coś tam"?

Napisz sobie funkcję, którą będziesz mógł wywoływać w każdym miejscu, w którym potrzebujesz pobrać tego typu dane od użytkownika.

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