Blokowanie liter podczas podawania liczby z klawiatury

0

Cześć. Mam problem z nauką c++. Mianowicie staram się napisać prosty program, który pobiera od użytkownika dane liczby zmiennoprzecinkowe i dokonuje dalszych instrukcji.
Problem w tym, że gdy zamiast liczby użyję jakiejkolwiek litery program całkowicie się rozsypuje . Moje Pytanie jest następujące: Jak mogę zablokować użytkownikowi dostęp do litery tak, że po wpisaniu jakiejkolwiek np. "if" wyświetli komunikat o podawaniu tylko i wyłączeni cyfr.

Szukałem w internecie rozwiązania, ale znalazłem takie, które nie do końca rozwiązuje mój problem. Z góry dziękuje za pomoc.

1

Najłatwiej chyba będzie coś w takim stylu:

double x;

for(;;) {
    if(std::cin >> x) {
        // przyjęto coś, co się udało wepchnąć do double’a
    } else {
        std::cout << "Zła wartość, podaj jeszcze raz.\n";
        std::cin.clear();
        std::cin.sync();
    }
}

Samemu lubię przyjmować stringa i rzucać boost::lexical_cast, ale w prostych projektach jest z tym więcej zachodu niż jest to warte.

0

Problem Rozwiązany! Dzięki Wielkie za Pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1