[C++] Problem ze sprawdzeniem poprawności strumienia wejścia za pomocą wzorca
Ostatnio zmodyfikowano 2015-01-06 15:53
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: template < typename Type > 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. |
|
kubawal |
» 2015-01-06 14:34:59 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. |
|
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 |
|
« 1 » |