Pętla bez końca, przy wprowadzeniu litery zamiast cyfry

0

Witam,

mam taki programik w którym użytkownik ma wybrać opcję z danego przedziału,
program ma sprawdzić czy wybrał z danego zakresu a jeżeli nie to poprosić o ponowne wybranie.
Problem polega na tym, że po wprowadzeniu LITERY zamiast cyfry, pętla wykonuje się bez końca,
nie pytając nawet o podanie innej wartości - w przypadku cyfr spoza przedziału działa dobrze.
Wiecie jak to naprawić ?

void Zadanie1()
{
int  numer ;

bool robic = true ;    
    do{
             cout << "Zadanie 1.\n\nWybierz Jezyk:\n1:\tPolski\n2:\tAngielski\n3:\tLakota\n\n";
             cin >> numer ;  

                 while(numer<0 || numer > 3){    // petla sprawdza czy numer nalezy do przedzialu 1-3.
                 cout << "Podaj liczbe z przedzialu od 1 do 3 ;)\n";
                 numer = 0 ;
                 cin >> numer ; 
                 } ;
             
             Witam aaa(numer) ; // tworzymy klase "aaa" typu Witam do ktorej wrzucamy podany numer.
             cout << aaa.napis << endl <<   "Powtorzyc zadanie ? \n1 - tak\n0 - nie\n" ; // wyswietlamy napis i pytamy czy powtorzyc zadanie
             cin >> robic ; // zbieramy stringa 
    } while(robic) ;// petla sprawdza, czy uzytkownik chce powtorzyc zadanie   TUTAJ SIE WYWALA - pytanie, dlaczego ?           
} 

oraz klasa która się posługuje - bo ma być na klasie ;)

class Witam {
      public : 
      int nr ;
      string napis ; 
      Witam(int nr) ;      
} ;
Witam::Witam(int nr){
       this->nr = nr ;
       switch(nr){
       case 1 : this->napis = "Witaj Swiecie!\n\n" ; break ;
       case 2 : this->napis = "Hello World!\n\n" ;   break ;
       case 3 : this->napis = "Bunga Bunga!\n\n" ;   break ;                 
       }   ;     
} ; 

Z góry dzieki za pomoc i pozdrawiam ;)

0

dzieki ;)

Nie wiedzialem jak zdefiniowac pytanie w google ;)

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