Nieskończona pętla po wprowadzeniu złych danych

0

Witam, podczas testowania natknąłem się na pewien problem. Po wpisaniu złej danej program zapętla się w nieskończoność. Próbowałem czyszczenie bufora, ale bezskutecznie. Proszę o jakieś wskazówki, gdyż na pewno rozwiązanie jest trywialne...

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int liczba;
    bool flaga = false;

    while (flaga == false) {
        cout << "Podaj liczbe: ";
        cin >> liczba;
        if (cin.good()) {
            cout << liczba;
            flaga = true;
        }
        else {
            cout << "Blad";
        }
    }
}
2
if(cin >> liczba){
	flaga = true;
	cout << liczba;
}else{
	cout << "Blad";
	cin.clear();
	cin.sync();
}

Przy okazji:

  1. Zabezpieczenie przed wpisywaniem liter
  2. Popraw formatowanie. Jak sam nie umiesz to masz http://format.krzaq.cc/

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