grazie... cosi ora mi va:

codice:
#include <iostream>

using namespace std;

int main()
{
	int c;

	cout << "Insert a or b: " << endl;
	while (1)
	{

		cin >> c;

		if (c == 1 || c == 2)
			cout << "scelta esatta" << endl;
		else
			cout << "scelta errata, riprova" << endl;

		cin.clear();
		while( cin.peek() != '\n' ) cin.ignore();
	}

	return 0;
}
bisognava aggiungere quel

cin.clear();
while( cin.peek() != '\n' ) cin.ignore();

per risolvere il problema anceh se non mi è chiarissimo perchè cin fa quest'errore e devo usare questo piccolo accorgimento per "aggirarlo"