Witam, mam problem z małym programem, który ma pytać o liczbę i zwracać ją, ale jednocześnie być zabezpieczonym przed wpisaniem litery. Oczywiście można to zrobić z if, ale wtedy nie ma możliwości powrotu do pytania.
#include <iostream>
using namespace std;
int main()
{
int liczba;
do
{
cout<< "Podaj liczbe: "<<endl;
cin>> liczba;
cin.ignore();
}while (!cin.good());
cout<< "Podana liczba to: "<<liczba;
return 0;
}
Program działa dobrze do momentu wpisania litery, wtedy pętla zaczyna wykonywać się bez końca, nie dając możliwości wpisania kolejnego znaku. Natomiast jeśli usunie się wykrzyknik sprzed cin.good(), pętla działa tak jak powinna dla cyfr, to znaczy po wpisaniu cyfry pyta o następny znak i daje możliwość wpisania go, ale wykonuje się w nieskończoność po wpisaniu litery.
Co robię nie tak?