Rozdzial 16 Zadanie domowe | Zabezpieczenie przed wprowadzeniem złych danych
Ostatnio zmodyfikowano 2017-01-31 17:04
rambosek Temat założony przez niniejszego użytkownika |
» 2017-01-31 14:30:45 Ok, konkretniej bylo tak: while( !( cin >> x ) ) { proba++; cout << "Wprowadz poprawna liczbe.\n" << proba << ". Proba "; cin.clear(); cin.sync(); }
a teraz jest tak: cin >> x;
while( !( cin.good() ) ) { proba++; cout << "Wprowadz poprawna liczbe.\n" << proba << ". Proba "; cin.clear(); cin.sync(); }
Czemu gdy wpiszę literę, wykonuje się ta pętla, ale też wykonuje się dalszy IF który informuje że liczba jest za mała? |
|
carlosmay |
» 2017-01-31 15:38:47 Po wprowadzeniu złych danych wykonuje się pętla, która sprawdza tylko stan strumienia. W pętli jest on zerowany i strumień przed nastepnym obrotem pętli jest prawidłowy więc program opuszcza pętlę. Dodaj cin >> x; na końcu pętli, a otrzymasz efekt pierwszego kodu. Poszukaj jak obsługiwać debugger w twoim środowisku. Debugger ułatwia znajdowanie błędów w logice kodu. |
|
rambosek Temat założony przez niniejszego użytkownika |
» 2017-01-31 17:04:50 dziękuje bardzo za pomoc, już rozumiem jak to działa :) |
|
1 « 2 » |