elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
21 Marzo 2010, 18:44  


Temas destacados: Sigue las noticias más importantes de elhacker.net en Twitter! twitter


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

Desconectado Desconectado

Mensajes: 18


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

Desconectado Desconectado

Mensajes: 1.498


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

Irrationally held truths may be more harmful than reasoned errors.

Website: Need of Security
nnooxx

Desconectado Desconectado

Mensajes: 112


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: 103

because no dying? -> working on SYS-adm [80%]


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.

Desconectado Desconectado

Mensajes: 1.331



Ver Perfil
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

La gran pelea:
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Yashira.org    Videojuegos    indetectables.net    Seguridad Informatica Colombia    Indejuegos    Internet móvil

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec    Seguridad Wireless    Underground México    Biblioteca de Seguridad

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC