elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:48  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Como saber si el dato introducido por teclado es numérico? [C++]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como saber si el dato introducido por teclado es numérico? [C++]  (Leído 2,754 veces)
Don Pollo

Desconectado Desconectado

Mensajes: 66

/* No comments */


Ver Perfil
Como saber si el dato introducido por teclado es numérico? [C++]
« en: 17 Marzo 2011, 18:24 »

Pues eso, estoy haciendo una práctica y necesito saber si hay alguna función para saber si el dato que han introducido por teclado es de tipo numérico.

Sé que puede ser una duda bastante tonta, pero me he quedado bloqueado en ese punto de la aplicación  :-\


Un saludo y gracias de antemano!


En línea




Leber


Desconectado Desconectado

Mensajes: 338


"Fracta, non verba"


Ver Perfil WWW
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #1 en: 17 Marzo 2011, 18:27 »

Creo que puedes usar: http://www.cplusplus.com/reference/clibrary/cctype/isdigit/
Código:
isdigit(var_a_comprovar);


Saludos


En línea

"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #2 en: 17 Marzo 2011, 18:40 »

isdigit sólo te mira un carácter, si quieres comprobar toda una cadena, lo lanzas n veces para toda la cadena.

Otra opción, es comparar si el carácter en el que estás (mientras recorres la cadena) está entre el valor del carácter 0 y el valor del carácter 9
Código
caracter>='0' && caracter<='9'
Que imagino será lo que isdigit hace por debajo, pero de esta forma, te ahorras llamar a una función
En línea

Don Pollo

Desconectado Desconectado

Mensajes: 66

/* No comments */


Ver Perfil
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #3 en: 17 Marzo 2011, 18:48 »

Otra opción, es comparar si el carácter en el que estás (mientras recorres la cadena) está entre el valor del carácter 0 y el valor del carácter 9
Código
caracter>='0' && caracter<='9'
Que imagino será lo que isdigit hace por debajo, pero de esta forma, te ahorras llamar a una función

Pero eso sólo me serviría para valores comprendidos entre 0 y 9. Pero si meto el 14, por ejemplo, me dirá que no es un dato numérico.
En línea




pucheto

Desconectado Desconectado

Mensajes: 214


Ver Perfil
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #4 en: 17 Marzo 2011, 18:54 »

Pero eso sólo me serviría para valores comprendidos entre 0 y 9. Pero si meto el 14, por ejemplo, me dirá que no es un dato numérico.
No... eso se fija si los caracteres q metes son o no un numero... el 14 = '1' '4'... primero lo lees como cadena, te fijas si es numerico, y despues lo convertís a numero...
En línea
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #5 en: 17 Marzo 2011, 19:04 »

Exacto, si tu lees una cadena, y quieres comprobar si es un número, tienes que comprobar que todos sus dígitos sean números.

Ejemplo:

te introducen 65536 y lo lees como cadena de caracteres , el contenido de dicha cadena es:
Código
cad[0]='6'
cad[1]='5'
cad[2]='5'
cad[3]='3'
cad[4]='6'
cad[5]='\0'

mientras, que si tu lo lees como un entero, simplemente es un entero que tiene el valor 65536.

Si tu estás leyendo números como cadenas, y te preocupa que te puedan colar cosas como asd345:
representado como:
Código
cad[0]='a'
cad[1]='s'
cad[2]='d'
cad[3]='3'
cad[4]='4'
cad[5]='5'
cad[6]='\0'
Utilizas isdigit para cada carácter o lo que he comentado yo antes.
« Última modificación: 17 Marzo 2011, 19:06 por Akai » En línea

Don Pollo

Desconectado Desconectado

Mensajes: 66

/* No comments */


Ver Perfil
Re: Como saber si el dato introducido por teclado es numérico? [C++]
« Respuesta #6 en: 17 Marzo 2011, 19:06 »

Vale vale, entiendo.

Muchas gracias a los 3  ;D
En línea




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como activo el bloque numerico.. sin tecla
Windows
Thelord 3 2,432 Último mensaje 17 Febrero 2006, 12:19
por porilio
Alt + Teclado numérico.
GNU/Linux
NekroByte 0 238 Último mensaje 5 Abril 2007, 07:12
por NekroByte
como crackeo datos md5 o puede ser arfa numerico
Hacking Básico
Enrique357 1 917 Último mensaje 7 Abril 2011, 19:19
por WHK
Como Saber el Origen de un dato?
Ingeniería Inversa
RHL 6 595 Último mensaje 16 Diciembre 2011, 20:25
por RHL
(Resuelto) Buscar un dato numerico con LIKE SQL SERVER 2005
Bases de Datos
Zeroql 1 522 Último mensaje 22 Febrero 2012, 03:30
por Zeroql
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines