SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Dhanny en Jueves 5 de Julio de 2007, 20:52

Título: Forzar Letras O Numeros
Publicado por: Dhanny en Jueves 5 de Julio de 2007, 20:52
tengo una opcion en un menu pero cuando coloco letras se pega el programa.
como puedo hacer para que si el usuario tipea una letra en vez de numero no la imprima en pantalla o no aparezca hasta que que tipee un numero y lo contrario tambien.

Gracias  :hola:
Título: Re: Forzar Letras O Numeros
Publicado por: LeGatoRojo en Jueves 5 de Julio de 2007, 21:06
usa getch();, aunque realmente no se que plataforma estas usando.
Título: Re: Forzar Letras O Numeros
Publicado por: Dhanny en Jueves 5 de Julio de 2007, 21:10
uso getch(); pero me refiero a que si el menu pide ingresar del 1 al 5 por ejemplo que no permita ingresar letras, o sea al momento de presionar las teclas de letras no las muestre en pantalla
Título: Re: Forzar Letras O Numeros
Publicado por: LeGatoRojo en Jueves 5 de Julio de 2007, 21:14
Bueno con getch no muestra nada, pero si quieres mostrar algo, usa getch y printf, y creo que una validacion de esas la puedes hacer con isdigit y complementarla con isalpha.
Título: Re: Forzar Letras O Numeros
Publicado por: Mollense en Jueves 5 de Julio de 2007, 21:46
Si querés hacerlo con getch sería algo así:
Código: Text
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main(void){
  5.   char opcion='0';
  6.   printf("Ingrese un n£mero del 1 al 5: ");
  7.   while(opcion<'1' || opcion>'5') opcion=getch();
  8.   printf("\nLa opci¢n ingresada es: %c",opcion);
  9. }
  10.  

Un saludo