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

Lekcja 15 [pętla]

Ostatnio zmodyfikowano 2013-02-17 20:51
Autor Wiadomość
oskarkxyz
Temat założony przez niniejszego użytkownika
Lekcja 15 [pętla]
» 2013-02-17 19:39:01
Witam.

Uczę się dopiero programowania i prosiłbym was o wyrozumiałość. Obecnie jestem na 15 rozdziale (1rozdział 2 poziomu) kursu C++ no i najzwyklejsza pętla mnie pokonała. Oto 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.

Teraz mój kod

C/C++
#include <iostream>
using namespace std;

int main()
{
    int liczba;
    do
    {
        cout << "Podaj liczbe" << endl;
        cin >> liczba;
        if( std::cin.good() )
             cout << "Gratulacje, podales liczbe" << endl;
       
    } while( std::cin.fail() );
   
    return 0;
}

Kiedy wpiszę cyfrę to rzeczywiście wyskakuje mi "Gratulacje, podales liczbe", ale kiedy wpiszę np. "x" to wyskakuje mi ciągle "Podaj liczbe" i ciągnie się to w nieskończoność. Mógłby mi ktoś pomóc i powiedzieć co robię nie tak?

Z góry dziękuję za odpowiedź:)
P-76462
ison
» 2013-02-17 20:51:01
po wprowadzeniu błędnych danych musisz wyczyścić strumień
C/C++
std::cin.clear();
std::cin.sync();
na początku pętli
P-76465
« 1 »
  Strona 1 z 1