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

[Lekcja 15, zad 1] Zabezpieczanie przed wprowadzaniem nieprawidłowych liczb

Ostatnio zmodyfikowano 2012-11-07 11:47
Autor Wiadomość
luii09
Temat założony przez niniejszego użytkownika
[Lekcja 15, zad 1] Zabezpieczanie przed wprowadzaniem nieprawidłowych liczb
» 2012-11-06 19:59:49
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.

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

int main()
{
   
    int a;
    do
    {
        cout << "podaj liczbe: " << endl;
        cin >> a;
        if( cin.good() )
             cout << "podana liczba to: " << a;
       
    } while( cin.fail() );
   
    return 0;
}


Czy ten program jest chociaż troche dobrze zrobiony? Jeżeli tak to co trzeba w nim poprawić, aby dobrze funkcjonował?
P-68634
Dragonit
» 2012-11-06 20:35:34
Wpisz literkę i zobacz co się stanie :)
P-68636
luii09
Temat założony przez niniejszego użytkownika
» 2012-11-06 21:28:10
Wiem co sie stanie, nie wiem dlaczego tak sie dzieje.
P-68661
DejaVu
» 2012-11-06 21:34:06
W strumieniu pozostają śmieci - dlatego nie działa Ci aplikacja. Musisz wyczyścić zawartość strumienia - szczegóły w rozdziale: » Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja.
P-68666
Dragonit
» 2012-11-06 21:40:08
C/C++
int main()
{
    int a;
    do
    {
        cin.clear(); // wyczyść flagę błędu
        cin.sync(); // wyczyść bufor strumienia
       
        cout << "podaj liczbe: " << endl;
        cin >> a;
        if( cin.good() )
             cout << "podana liczba to: " << a;
       
    } while( cin.fail() );
   
    return 0;
}

P-68668
gonzo_post
» 2012-11-07 11:09:40
a pod linuxem:
 
C/C++
std::cin.clear();
std::cin.ignore( 1000, '\n' );
P-68699
luii09
Temat założony przez niniejszego użytkownika
» 2012-11-07 11:47:02
Dzięki za pomoc.
P-68701
« 1 »
  Strona 1 z 1