Lekcja 17 zadanie 1 pętla nie działa
Ostatnio zmodyfikowano 2015-01-09 21:22
Perliks Temat założony przez niniejszego użytkownika |
Lekcja 17 zadanie 1 pętla nie działa » 2015-01-09 20:53:00 Witam mam problem z zadaniem z lekcji nr 17. Brzmi ono : Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej. Otóż chodzi o to , że pętla mimo wpisania np znaku "a" kontynuuje działanie zamiast wrócić do ponownego podania liczby. Tekst z ifa wyświetla się poprawnie. W czym leży problem? Z góry dziękuje za wszystkie rady! Pozdrawiam! int wczytajLiczbe() { int a; bool niepoprawna; do { cout << "Podaj liczbe : "; cin >> a; niepoprawna = cin.fail(); if (niepoprawna) cout << "Podales nieprawidlowa liczbe!" << endl; return a; } while (niepoprawna); }
int main() { int liczba = wczytajLiczbe(); cout << "Podales liczbe: " << liczba << endl; system("pause"); return 0; }
|
|
lectre |
» 2015-01-09 21:00:13 Instrukcja return powoduje natychmiastowy koniec funkcji i zwrócenie wartości a. int wczytajLiczbe() { int a; bool niepoprawna; do { cout << "Podaj liczbe : "; cin >> a; niepoprawna = cin.fail(); cin.clear(); cin.sync(); if( niepoprawna ) cout << "Podales nieprawidlowa liczbe!" << endl; } while( niepoprawna ); return a; }
int main() { int liczba = wczytajLiczbe(); cout << "Podales liczbe: " << liczba << endl; system( "pause" ); }
|
|
Perliks Temat założony przez niniejszego użytkownika |
» 2015-01-09 21:14:33 Ok problem rozwiązany dzięki bardzo za naprowadzenie na błąd :) Dodam jeszcze ze w warunku pętli też był babol:) |
|
lectre |
» 2015-01-09 21:22:28 Czemu babol? |
|
« 1 » |