elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 19,707 veces)
Don Pollo

Desconectado Desconectado

Mensajes: 74

/* 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
  1. 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: 74

/* 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
  1. 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: 215


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
  1. cad[0]='6'
  2. cad[1]='5'
  3. cad[2]='5'
  4. cad[3]='3'
  5. cad[4]='6'
  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
  1. cad[0]='a'
  2. cad[1]='s'
  3. cad[2]='d'
  4. cad[3]='3'
  5. cad[4]='4'
  6. cad[5]='5'
  7. 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: 74

/* 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:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines