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

Zadanie domowe - kurs c++ nie działa cin.good().

Ostatnio zmodyfikowano 2016-11-23 20:48
Autor Wiadomość
niewiemkto
Temat założony przez niniejszego użytkownika
Zadanie domowe - kurs c++ nie działa cin.good().
» 2016-11-23 20:24:53
Witam. Próbuje zrobić zadanie domowe z kursu o treści:
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.

Program nie działa mi dobrze najwyraźniej źle korzystam z cin.good(). Czy wie ktoś jak to zrobić by działalo tak jak wynika z treści zadania?
Z góry dziękuje za odpowiedż.
Oto kod:

C/C++
#include <iostream>

using namespace std;
int main()
{
    double a;
    int b = 2;
    bool dobrze = cin.good();
    do
    {
        cout << "Podaj liczbe:   ";
        cin.clear();
        cin.sync();
        cin >> a;
        if( dobrze )
        {
            cout << "Podana liczba to:   " << a;
            b++;
        }
    } while( b = 2 );
   
}
P-154058
karambaHZP
» 2016-11-23 20:46:59
Sprawdzenie stanu strumienia dobrze = std::cin.good(); wykonaj dopiero po użyciu operatora
>>
 .
P-154060
niewiemkto
Temat założony przez niniejszego użytkownika
» 2016-11-23 20:48:59
Czyli jak by to musialo wygladac? Bo nie rozumiem troche.
W koncu mi sie udalo
C/C++
#include <iostream>

using namespace std;
int main()
{
    double a;
    int b = 2;
    bool dobrze = cin.good();
    do
    {
        cout << "Podaj liczbe: ";
        cin.clear();
        cin.sync();
        cin >> a;
        if( cin.good() )
        {
            cout << "Podana liczba to: " << a << endl;
            b += 5;
        }
        else {
           
            cout << "TO NIE JEST POPRAWNA LICZBA!!!" << endl;
        }
    } while( b == 2 );
   
}
P-154061
« 1 »
  Strona 1 z 1