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 ;)