#include using namespace std; int main() { double wartosc; cout << "Wprowadz wartosc double: "; cin >> wartosc; // pobieramy wartosc z wejscia do zmiennej double, zatem wszystko musi przejsc poprawnie, poniewaz obiekt cin juz sam o to dba. w przypadku, gdy na pierwszym miejscu jest bledna dana (np. znak alfa), cin.peek() zwraca -1 - dzieje sie tak, poniewaz na obiekcie cin powinna zostac ustawiona flaga bledu cout << "Wprowadzona wartosc to: " << wartosc << endl; // pokazanie wartosci, oczywiscie bez formatowania wyjscia, ktorego nigdy mi sie nie chce robic char znaczek = cin.peek(); // podgladamy kolejny znak w strumieniu cout << "Kod kolejnego znaku to: " << int(znaczek) << ", czyli '" << znaczek << "'." << endl; // wyjscie testowe if (znaczek != 10) { // wejscie zostalo skonwertowane poprawnie wtedy i tylko wtedy, gdy do zmiennej double przez cin zostala wciagnieta cala linia - oznacza to, ze w strumieniu jako pierwszy znak do wczytania bedzie CR, czyli 10 (0x0A) (trzeba by sprawdzic wersje pod windowsy - tam jest CR/LF, czyli 10/13 cin.ignore(); // wywalamy wszystko z wejscia cerr << "Wyglada na to, ze system niepoprawnie odczytal wprowadzona wartosc. Sprobuj jeszcze raz." << endl; // pokazujemy stosowny komunikat } else { cout << "Konwersja przeprowadzona pomyslnie." << endl; // hurra, udalo sie! } return 0; // papa }