elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
12 Febrero 2012, 14:31  

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ingresar solo numeros.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ingresar solo numeros.  (Leído 2,251 veces)
javahat

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Ingresar solo numeros.
« en: 23 Diciembre 2009, 07:10 »

Hola estoy implementando una función en la que debo ingresar solo un número entero, y cuando ingrese cualquier otra cosa envie un mensaje de error.

Código
int validacion(int x){
 
}  
 
 
  int main(){
 
   int numero;
   char c;
 
 printf("Ingresar Numero:");
         scanf("%c",&c);
 
   numero=validacion(c);
   printf("%c",c);
 
  getch();
 
  }  
 
 



« Última modificación: 23 Diciembre 2009, 20:08 por javahat » En línea
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.704


Nie Dam Sie


Ver Perfil WWW
Re: Ingresar solo numeros.
« Respuesta #1 en: 23 Diciembre 2009, 07:22 »

Puedes usar isdigit de ctype o verificar los valores ASCII por tu cuenta.

Utiliza las etiquetas GeSHi para poner codigo:

C

[code=c]AQUI TU CODIGO[/code]

C++

[code=cpp]AQUI TU CODIGO[/code]


Y para la proxima intenta primero utilizar el buscador. Seguro alguien tuvo la misma duda antes.

Click>> Dudas tratamiento de errores en C

Click>> Funcion para verificar numero


Un saludo!


En línea


@NeedOfSecurity

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
nnooxx

Desconectado Desconectado

Mensajes: 138


Ver Perfil
Re: Ingresar solo numeros.
« Respuesta #2 en: 25 Diciembre 2009, 22:20 »

Yo habia pensado en algo asi:

Código
#include <stdio.h>
main()
{
int caracter;
printf("Introduce tu caracter:\n");
scanf("%i",&caracter);
if ( sizeof(caracter)==4 )
  {
   printf("Gracias por introducir un numero\n");
  }
else
  {
   printf("Esto no es un numero\n");
  }
}

edito: Nada lo siento esta mal porque el dato siempre va a ser int aunque contenga una letra. Por cierto entonces no hay ningun tipo de dato indefinido ?? un saludo y lo siento por no poder ayudarte
En línea
b10s_0v3rr1d3

Desconectado Desconectado

Mensajes: 185

si puede hacerse debe hacerse


Ver Perfil WWW
Re: Ingresar solo numeros.
« Respuesta #3 en: 25 Diciembre 2009, 22:29 »


tienes las funciones de la libreria <ctype.h> "isdigit" que te dice si es un numero o no.
tambien puedes ir pidiendo los numeros y usar la funcion isalpha que te dice si se ha introducido un caracter y entonces mostrar un aviso (una variable tipo char y usar castings para pasarlo a int), etc.....

nos leemos :P
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.938


/^$/


Ver Perfil WWW
Re: Ingresar solo numeros.
« Respuesta #4 en: 25 Diciembre 2009, 23:42 »

Yo para asegurarme que solo introduzca numeros y no caracteres hago esto:

Código
#include <stdio.h>
int main(void)
{
   signed int numero;
   do
   {
       printf("Numero : ");
       setbuf(stdin, NULL);
   } while(scanf("%d", &numero) != 1);
   printf("{%d}\n", numero);
   return 0;
}
 

Pero por supuesto, sólo funciona para asegurar que no se ingresen caracteres, no funcionaria para string ni para otros.
Yo habia pensado en algo asi:

Código
#include <stdio.h>
main()
{
int caracter;
printf("Introduce tu caracter:\n");
scanf("%i",&caracter);
if ( sizeof(caracter)==4 )
  {
   printf("Gracias por introducir un numero\n");
  }
else
  {
   printf("Esto no es un numero\n");
  }
}


Es mejor usar %d, ya que con %i eres propenso a que se ingresen enteros en otras bases, así que mejor usa %d para base decimal.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algun diccionario solo con numeros
Hacking Wireless
jejeey 2 1,442 Último mensaje 5 Marzo 2011, 21:05
por jejeey
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines