Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 15 do...while

Ostatnio zmodyfikowano 2014-09-15 11:37
Autor Wiadomość
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
P-116943
1aam2am1
» 2014-09-13 16:55:20
while( sukces == 1 );
P-116944
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
P-117018
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ć.

C/C++
float liczba, a;
bool sukces;
do
{
} while( sukces );

P-117021
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 :)
P-117022
« 1 »
  Strona 1 z 1