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

Rozdział 15 - zadanie domowe - problem z pętlą

Ostatnio zmodyfikowano 2013-07-31 00:19
Autor Wiadomość
arti14
Temat założony przez niniejszego użytkownika
Rozdział 15 - zadanie domowe - problem z pętlą
» 2013-07-31 00:07:53
To znów ja. Z ostatnim problemem udało mi się tutaj poradzić, więc liczę, że i z tym się uda. Dziś już ponad 4 godziny nad nim spędziłem, rozwiązań sprawdziłem wiele, ale ciągle mi nie wyszło.
Chodzi mi o zadanie:
"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."

Tutaj to co udało mi się zrobić. Komentarze pokazują, co chciałem osiągnąć.
C/C++
#include <iostream>
int main()
{
    int a; //liczba wpisywana
    int b;
    do
    {
        std::cout << "Podaj liczbe: " << std::endl;
        std::cin >> a;
        std::cin.good() == b; //jak podano liczbe, to std::cin.good jest 1, wiec b powinno byc 1
        std::cin.clear();
        std::cin.sync();
    }
    while( b != 1 ); //zeby przerwac petle nawias musi sie nie zgadzac, wiec b musi byc rozne od 1
   
    std::cout << "Twoja liczba to: " << a;
    return 0;
}

Zgaduję, że zły jest zapis "std::cin.good() == b".
Proszę o jakieś podpowiedzi, jak to rozwiązać.
P-89083
MrPoxipol
» 2013-07-31 00:14:58
Musisz przypisać, a nie porównać, więc
b=cin.good();
P-89084
arti14
Temat założony przez niniejszego użytkownika
» 2013-07-31 00:19:15
Dzięki wielkie dobry człowieku.
Tyle czasu straciłem, a byłem tak blisko.
P-89085
« 1 »
  Strona 1 z 1