[Rozdział 17] Problem z zadaniem 1.
Ostatnio zmodyfikowano 2015-09-30 00:05
bojo240 Temat założony przez niniejszego użytkownika |
[Rozdział 17] Problem z zadaniem 1. » 2015-09-29 23:23:34 Witam. Po paromiesięcznej przerwie wróciłem do kursu c++ i mam problem z pewnym zadaniem. Jego treść: 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. C/C++ #include <iostream> int wczytajLiczbe() { }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; }
Mój kod: #include <iostream> using namespace std; int wczytajliczbe() { int a; do { cin.clear(); cin.sync(); cin >> a; if( a = cin.fail() ) { cout << "Podales niepoprawna wartosc. Podaj liczbe: "; } } while( a = cin.fail() ); return a; } int main() { cout << "Podaj liczbe: "; int liczba = wczytajliczbe(); cout << "Podales liczbe: " << liczba << endl; return 0; }
Nie jestem w stanie zmusic programu do wypisania podanej liczby. Prosze o wskazówki. |
|
bojo240 Temat założony przez niniejszego użytkownika |
» 2015-09-30 00:01:01 Okej, zapomnialem o wprowadzeniu zmiennej bool ^.^ Zamykam. |
|
carlosmay |
» 2015-09-30 00:05:41 a = std::cin.fail() Źle napisany warunek. std::cin.fail() samo wystarczy do sprawdzenia czy obiekt std::cin nie jest w stanie błędu. Metoda std::cin.fail() zwraca wartość true (1) lub false (0) i jedną z tych wartości przypisujesz do zmiennej 'a' w warunku, ale pętla kończy działanie gdy metoda ta zwraca false, więc 'a' za każdym razem jest równe 0; |
|
« 1 » |