Lekcja 15 do...while
Ostatnio zmodyfikowano 2014-09-15 11:37
fluks147 Temat założony przez niniejszego użytkownika |
Lekcja 15 do...while » 2014-09-13 16:07:31 Napisałem program który miał wczytać liczbę, kiedy wpisuję literę ma się zapętlić, a ma się zakończyć po wpisaniu liczby. Wygląda on tak:
#include <iostream> using namespace std; int main() { float liczba, a, sukces; do { cout << "Podaj liczbe: "; cin >> liczba; cout << endl; bool sukces = cin.fail(); cin.clear(); cin.sync(); cout << sukces << endl; } while( sukces = 1 ); return 0; }
Niestety zapętla się za każdym razem. Specjalnie pod koniec instrukcji do zrobiłem żeby wypisywal mi wartość "sukces", po to żebym mógł sprawdzić czy tam się wszystko zgadza. No i się zgadza, mimo wartości sukcesu 0, program dalej się zapętla. Co jest nie tak? Proszę o pomoc |
|
1aam2am1 |
» 2014-09-13 16:55:20 while( sukces == 1 ); |
|
fluks147 Temat założony przez niniejszego użytkownika |
» 2014-09-15 11:15:08 Niestety, dalej nie działa, tylko że teraz nigdy się nie zapętla |
|
michal11 |
» 2014-09-15 11:32:04 Masz 2 zmienne sukces, float która ma zakres w main i bool ktora ma zakres w petli. Kiedy robisz sukces==1 to nie porównujesz 1 z boolem tylko z floatem który w dodatku nie jest zainicjalizowany. I właśnie dlatego przy wypisywaniu ci się zgadzało bo wypisywało jeszcze zmienna lokalną z pętli, która za chwile przestaje istnieć. float liczba, a; bool sukces; do { } while( sukces );
|
|
fluks147 Temat założony przez niniejszego użytkownika |
» 2014-09-15 11:37:02 Faktycznie, teraz już wiem dlaczego mi nie działało, wielkie dzięki :) |
|
« 1 » |