Mam program który wczytuje dwie liczby i je porównuje. Chciałem go zrobić idiotoodpornym (żeby wywalało błędy, jeśli ktoś nie działa w zgodzie z instrukcjami), ale już nie wiem jak skonstruować ostatnią pętlę. Użytkownik ma wpisać"koniec" jeśli chce zakończyć albo "replay" jeśli chce powtórzyć. Chciałem zrobić tak, żeby po wpisaniu cokolwiek innego (nie raply i nie koniec) wyskakiwał błąd, ale poległem.
int main()
{
float a, b;
string replay;
int koniec;
cout << "Podaj liczbe a: ";
do
{
Czysc();
cin >> a;
if ( cin.fail())
cout << "Blad. Sprobuj ponownie: ";
}
while (cin.fail());
cout << "Podaj liczbe b: ";
do
{
Czysc();
cin >> b;
if (cin.fail())
cout << "Blad. Sprobuj ponownie: ";
}
while (cin.fail());
if ( a == b)
cout << "Czy liczba a jest rowna liczbie b? " << "Tak" << endl;
else cout << "Czy liczba a jest rowna liczbie b? " << "Nie" << endl;
if ( a > b)
cout << "Czy liczba a jest wieksza od liczby b? " << "Tak" << endl;
else cout << "Czy liczba a wieksza od liczby b? " << "Nie" << endl;
if ( a < b)
cout << "Czy liczba a jest mniejsza od liczby b? " << "Tak" << endl;
else cout << "Czy liczba a jest mniejsza od liczby b? " << "Nie" << endl;
if ( a!= b)
cout << "Czy liczba a jest rozna od b? " << "Tak"<< endl;
else cout << "Czy liczba a jest rozna od b? " << "Nie" << endl;
cout <<"Jesli chcesz sprobowac jeszcze raz, napisz: \"replay\" lub \"koniec\", jezeli chcesz zakonczyc: ";
do
{
Czysc();
cin >> replay;
if (replay=="koniec")
{
koniec=1;
}
if (replay=="replay")
{
koniec=2;
}
else
{
cout <<"Blad. Sprobuj jeszcze raz: ";
Czysc();
cin >> replay;
}
}
while(koniec!=1,2);
switch (koniec)
{
case 1:
return 0;
break;
case 2:
do
{
main();
break;
}
while (cin.fail());
}
}