Cześć! Może mi ktoś powiedzieć dlaczego mój program nie działa poprawnie? Powinno być tak: podaję liczbę, sprawdzam czy podano prawidłową liczbę, czy jakiś znak. Jeśli znak, to wracam na początek i robię to aż użytkownik poda liczbę. Jeśli poda liczbę, to wyświetla "Udalo sie!" i pętla kończy się. Pętla kończy się również, gdy ktoś poda 0. Natomiast jest tak, że jeśli użytkownik poda znak, to pętla również się kończy, a powinna wrócić na początek. Gdzie mam błąd?
#include <iostream>
using namespace std;
int main()
{
double liczba;
bool czyWczytano;
do
{
cout << "Podaj liczbe: ";
cin >> liczba;
czyWczytano = cin.good();
cin.clear();
cin.sync();
if(czyWczytano == false)
{
cout << "Podales zla liczbe!" << endl;
continue; //Powinno wrocic na poczatek petli
}
else
{
cout <<"Udalo sie!" << endl;
break;
}
}while(liczba != 0);
return 0;
}