C/Visual C - Ingresar solo numeros

 
Vista:

Ingresar solo numeros

Publicado por HumberZam (4 intervenciones) el 05/08/2010 06:14:17
Que tal foro esperando se encuentren bien les traigo una pregunta:
Necesito en un programa validar que el dato ingresado sea un entero. EJEMPLO:

#include <iostream>
using namespace std;

int main ()
{
int i;

try{
cout<< "Ingresa un numero: ";
cin>> i;
cout << "Numero ingresado: " << i << endl;
} catch(...) {
cout<< "¡ERROR! Ingresa un numero." << endl;
}

return 0;
}

Ya le he probado de todo la idea general del programa es este.

Si ingreso una literal la salida es esta:

[darkguru@valhalla Tempo]$ ./excep
Ingresa un numero: u
Numero ingresado: 0

Si ingreso un numero la salida es esta:

[darkguru@valhalla Tempo]$ ./excep
Ingresa un numero: 6
Numero ingresado: 6

¿¿Como hacer pues para que el programa me diga que ingrese algo diferente de un numero??

UN SALUDOTE Y DE ANTEMANO GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

couch!!!

Publicado por Aquiles (16 intervenciones) el 09/08/2010 16:57:17
#include<iostream.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>

/*
*/
bool esEntero( char * str1, int * pint=0 )
{
char str2[100];
int i;

i = atoi( str1 ); // la cadena se convierte a entero.
itoa( i, str2, 10 ); // el entero se convierte nuevamente a cadena(str2).

if( !strcmp( str1, str2 )) // si son iguales o sea cero(0) es un entero.
{
if(pint) *pint = i; // si hay un apuntador a un entero se almacena el valor.
return true;
}

return false;
}


int main()
{

char str1[100];
int i;

cout << "Ingresa un numero entero( -2147483648 a 2147483647 )." << endl;
cin >> str1; // el valor es almacenado como cadena(s1).

if( esEntero( str1, &i ))

cout << "Numero ingresado: " << i << endl;
else
cout<< "¡ERROR! Ingresa un numero." << endl;

return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar