En este code... Que valida la entrada de un entero...
int numero, cont = 0;
bool continuar;
do {
continuar = false;
cin.clear();
if(cont > 0) cin.ignore(1024, '\n');
cout << "Introduce un numero: ";
cin >> numero;
cont++;
if(cin.fail() && cin.rdstate()){
cout << "NO ES UN NUMERO" << endl;
continuar = true;
}
} while (continuar);
Por que 1024? De hecho funciona hasta con 1... yo crei que funcionaria con un simple cin.ignore( '\n');
Pero nop :xD
Saludos...
EDIT:
Ya vi el por que, mejor hacerlo asi:
int x;
do{
if (!cin){
cin.clear();
while (cin.get() != '\n');
}
cout<<"dame x: ";
cin>>x;
}
while(!cin);
:)