Hola, queria saber si alguien me puede ayudar con este problema de c++:
1.- tengo que declarar una variable "int" (si o si :( )
2.- leer esa variable
3.- si introduzco cualquier otro dato que no sea un entero (ejemplo una palabar "gato"), el programa me dira que es un dato erroneo y me volvera a preguntar, esto es una idea que tengo de como hacerlo:
int main(){
int numero; ///este es el numero que quiero leer
do{
///aqui leo el numero
cout << "INTRODUZCA UN NUMERO: ";
cin>> numero;
if (aqui no se que condicion poner){
cout << "dato erroneo";
}
}while(aqui tampoco se que poner XD);
}
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
yo recomendaría hacerlo así
int main(){
int numero; ///este es el numero que quiero leer
while(true){ //ciclo infinito
cout << "INTRODUZCA UN NUMERO: ";
cin >> numero; //introducimos el numero
if (!cin){ // si cin falló porque el tipo era erroneo
cin.clear(); //limpiamos cin
cin.ignore(1<<30,'\n'); // ingoramos los "enter" que queden en buffer,
//el primero numero es simplemente un numero arbitrariamente grande
cout << "dato erroneo" << endl; // indicamos que el dato está mal
}else{ // si está bien
cout << "ok: " << numero << endl; // ok
break; // rompemos el ciclo
}
}
return 0; // main siempre debe retornar 0 si es ok
Gracias engel lex me has ayudado :D :D