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

lekcja 15 - zadanie domowa. Program przy podaniu złej wartości wykonuje nieskonczoną pętle.

Ostatnio zmodyfikowano 2014-08-24 18:37
Autor Wiadomość
rafwalus
Temat założony przez niniejszego użytkownika
lekcja 15 - zadanie domowa. Program przy podaniu złej wartości wykonuje nieskonczoną pętle.
» 2014-08-24 18:04:40
C/C++
// Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby.
//Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu:
//1. Podaj liczbę
//2. Jeżeli błąd, wróć do kroku 1.
//3. Wypisz liczbę, która została podana.

# include <iostream>
using namespace std;

int main()
{
    float a;
   
    do
    {
        cout << " Podaj dowolna liczbe rzeczywista: ";
        cin >> a;
    } while( cin.good() != 1 );
   
    cout << endl << "Ta liczba to " << a << ".";
    return 0;
}

Gdzie znajduje sie błąd w kodzie?
P-115990
Mateus.
» 2014-08-24 18:12:24
"Zabezpiecz przed wczytaniem nieprawidłowej liczby. "

Nie czyścisz strumienia wejściowego.
P-115991
pekfos
» 2014-08-24 18:14:15
"Zabezpiecz przed wczytaniem nieprawidłowej liczby. "

Nigdzie tego nie robisz.
Jak to nie? Jak poda nieprawidłową to program wpadnie w pętlę nieskończoną, ale nie przejdzie dalej z błędną liczbą. To niby jakieś zabezpieczenie ;) Brakuje tylko czyszczenia stanu strumienia.
P-115992
rafwalus
Temat założony przez niniejszego użytkownika
» 2014-08-24 18:14:40
} while( cin.good() != 1 );  - przeciez w tej linijce daje warunek ze jesli cin.good() = 0, czyli jesli wystapil blad powinno zapytac sie jeszcze raz o liczbe.
P-115993
MrPoxipol
» 2014-08-24 18:16:20
true jest różne od zera.
P-115994
rafwalus
Temat założony przez niniejszego użytkownika
» 2014-08-24 18:21:42
Pekfos - w ktorym miejscu powinienem dac czyszczecie strumienia?
P-115995
pekfos
» 2014-08-24 18:23:49
Przed wczytywaniem.
P-115996
rafwalus
Temat założony przez niniejszego użytkownika
» 2014-08-24 18:26:17
dalej to samo:(
P-115997
« 1 » 2
  Strona 1 z 2 Następna strona