Strumień wejścia - błędne dane

0

Witam !
Chce do swojego programu zrobić menu i zabezpieczyć go przed błednymi danymi wprowadzonymi przez użytkownika.

Oto moje menu:

 
	do
	{
		cin.sync();
		cin.clear();
		cout << "MENU" << endl;
		cout << "1. Wyznacz sumę wszystkich wprowadzonych liczb" << endl;
		cout << "2. wyznacz największą wartość z wprowadzonych liczb," << endl;
		cout << "3. wyznacz najmniejszą wartość z wprowadzonych liczb," << endl;
		cout << "4. wyznacz średnia wartość z wprowadzonych liczb," << endl;
		cout << "0. wyjście z programu" << endl;
		cin >> temp;
	} while (cin.fail() || temp > 4 || temp < 0);

Wszystkie błędy obsługuje pięknie po za jednym, mianowicie sytuacja kiedy jest wprowadzona jedynka i jakiś wyraz
np: "1LATO"
Wtedy do zmiennej przypisana jest "1" i program idzie dalej.

0

dodaj po pętli:

cin.sync();
0

Przecież jest na samym początku

0
        cin.clear();
        cin.sync();

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