Cita de: Zodiak98 en 22 Julio 2013, 20:09 PMCon solo C++ estándar hay que limitarse a la validación una vez se genere el texto.
Bueno es que estaba aburrido y me puse a programar un juego muy sencillo que trata sobre meter un numero entre el 1 y el 15 y tú compañero tiene que adivinarlo. Pero lo que quiero hacer es que no se puedan ingresar letras solo números
Debes leer una linea verificando que la lectura del entero sea exitosa y el siguiente carácter sea el avance de linea. Por ejemplo:
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <limits>
using std::numeric_limits;
int main()
{
int num;
bool ok = false;
bool error_critico = false;
do {
cout << "Teclea un numero: ";
if (cin >> num && cin.get() == '\n')
ok = true;
else if (cin.eof() || cin.bad())
error_critico = true;
else {
cout << "Entrada no valida" << endl;
cin.clear();
cin.ignore(numeric_limits<int>::max(), '\n');
}
}while (!ok && !error_critico);
cout << endl;
if (ok)
cout << "El numero es " << num << endl;
else
cout << "Error critico en la lectura" << endl;
return 0;
}
Un saludo