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

[C++] Problem ze sprawdzeniem poprawności strumienia wejścia za pomocą wzorca

Ostatnio zmodyfikowano 2015-01-06 15:53
Autor Wiadomość
seishi00
Temat założony przez niniejszego użytkownika
[C++] Problem ze sprawdzeniem poprawności strumienia wejścia za pomocą wzorca
» 2015-01-06 14:13:32
Witam,
Mój program zawiera poniższy kod:

C/C++
template < typename Type > // wzorzec dla sprawdzenia poprawności strumienia
Type & get()
{
    Type liczba;
    while( !( cin >> liczba ) )
    {
        cout << "Podaj poprawna wartosc liczbowa ";
        cin.clear();
        cin.sync();
    }
    return liczba;
};

Problem pojawia się przy wywołaniu wzorca dla typu integer.

Gdy podaję wartość 3.3 wtedy:
1. Nie pojawia się flaga błędu,
2. Wartość 3 zostaje zwrócona,
3. .3 pozostaje w strumieniu, co powoduje błędy w programie.

Z góry dziękuję za pomoc i przepraszam za ewentualne błędy w poście - ten jest moim pierwszym.
P-124314
kubawal
» 2015-01-06 14:34:59
typu integer.
 
wartość 3.3
3.3 nie jest literałem typu int. Więc do liczby typu int nie może zostać wczytana liczba 3.3, więc cin wczytuje tylko 3.
Liczba ta jest wartością typu double. Użyj
get < double >()
, wtedy cała liczba zostanie wczytana.
P-124317
seishi00
Temat założony przez niniejszego użytkownika
» 2015-01-06 15:53:51
Chodzi o to, że chcę, aby zwróciło błąd przy próbie wpisania 3.3 jako typu integer
P-124325
« 1 »
  Strona 1 z 1