Dlaczego jak wprowadzam zmienną typu int z klawiatury, to gdy wpiszę liczbę np. '456ghyj' nie wyrzuca błedu tylko obcina do 456. Podobnie metoda cin.fail() też nie traktuje tego jako błąd. A ja potrzebuje zwalidować czy wprowadzone dane to liczba całkowita. Nie wiem jak to ugryźć...
Walidacja innego znaku albo liczby dziesiętnej działa dobrze, tylko liczba z literami na końcu zawsze przechodzi...
Będę wdzięczny za odpowiedź ;)
cout<<"Enter integer number? "<<endl;
cin>>dlugosc;
if(cin.fail()){
cout<<"Ups, that is not a number. Try again..."<<endl;
cin.clear();
cin.ignore(1000, '\n');
}
else if (dlugosc - static_cast<int>(dlugosc) ){
cout<<"Ups, your number must be integer. Try again..."<<endl;
}
else {
//jakas tam operacja
}