Dzień dobry
Napisałem sobie taki program:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int czyparzysta(int liczba)
{
if (liczba % 2 == 0)
cout<<"Liczba "<<liczba<<" jest parzysta"<<endl;
else
cout<<"Liczba "<<liczba<<" jest nieparzysta"<<endl;
}
int main()
{
for(;;)
{
a:
int liczba;
cout<<"Podaj liczbe:"<<endl;
cin>>liczba;
while(!(cin>>liczba))
{
cin.clear();
cin.sync();
cout<<"Wartosc nie jest poprawna!"<<endl;
getch();
system("cls");
goto a;
}
czyparzysta(liczba);
getch();
system("cls");
}
return 0;
}
Działał on poprawnie do momentu, w którym dopisałem linijki
while(!(cin>>liczba))
{
cin.clear();
cin.sync();
cout<<"Wartosc nie jest poprawna!"<<endl;
getch();
system("cls");
goto a;
}
Gdy podaje liczbe albo litere, nic się nie dzieje i dopiero za 2 razem podaje czy liczba jest parzysta. Próbowałem usuwać getch(); w niektórych miejscach albo zmieniać jego miejsce, ale w żadnym przypadku nie działa to dobrze. Ktoś ma pomysł co tu może być źle?