Zadanie 1 z rozdziału 15 (pętla do while) problem ze zmienną bool
Ostatnio zmodyfikowano 2022-06-03 07:01
piratek Temat założony przez niniejszego użytkownika |
Zadanie 1 z rozdziału 15 (pętla do while) problem ze zmienną bool » 2022-06-03 04:13:29 Witam serdecznie. Po dłuższych bojach udało mi się wygrać z tym zadaniem, ale jeden problem nie daje mi spokoju. Mianowicie czemu poniższy kod nie działał prawidłowo: #include <iostream> using namespace std;
int main() { int liczba; bool blad = cin.fail(); do { cout << "Podaj liczbe: "; cin >> liczba; cout << "Czy wystapil blad? " << cin.fail(); cin.clear(); cin.ignore( 1000, '\n' ); } while( blad == 1 ); }
A mój obecny: (użyłem komentarza, by podkreślić gdzie są zmiany) #include <iostream> using namespace std;
int main() { int liczba; bool blad; do { cout << "Podaj liczbe: "; cin >> liczba; blad = cin.fail(); cout << "Czy wystapil blad? " << cin.fail(); cin.clear(); cin.ignore( 1000, '\n' ); } while( blad == 1 ); }
Nie do końca rozumiem, dlaczego zmienna bool wcześniej nie działała prawidłowo. Dlaczego muszę użyć blad = cin.fail(); dopiero w pętli? Teoretycznie żaden błąd przy kompilacji mi nie wyskoczył, ale w zależności od liczby, którą bym wpisał w miejsce while( blad == 1 ) , to niezależnie od wprowadzonej liczby czy tekstu pętla albo zawsze się wkonywała albo nigdy. |
|
pekfos |
» 2022-06-03 07:01:35 W pierwszej wersji sprawdzasz błędy tylko raz i używasz wyniku sprawdzenia przez cały program. |
|
« 1 » |