Foros del Web » Programación para mayores de 30 ;) » Programación General »

limitar teclas en C

Estas en el tema de limitar teclas en C en el foro de Programación General en Foros del Web. Hola estoy haciendo un programa en C el cual solo debe de admitir los siguientes caracteres: "1", "0", ".", "+", "-", "*", "/" como puedo ...
  #1 (permalink)  
Antiguo 16/09/2004, 13:46
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta limitar teclas en C

Hola estoy haciendo un programa en C el cual solo debe de admitir los siguientes caracteres:

"1", "0", ".", "+", "-", "*", "/"

como puedo hacer para que cuando los quiera leer con un "scanf", solo permita que esos caracteres sean escritos desde el teclado y si otro es precionado que no ponga nada

Ojala alguien me pueda ayudar

saludos y gracias

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #2 (permalink)  
Antiguo 16/09/2004, 14:19
Avatar de Yuukan  
Fecha de Ingreso: septiembre-2004
Ubicación: Vivo en Guatemala
Mensajes: 29
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación

Lo que debes de hacer es leer caracter a caracter y valuarlos si son los que aceptaras los escribes si no no los escribes, lleva un poco de trabajo pero funciona.

Para leer cada uno de los caracteres utiliza la función " char getch()" que te devuelve el caracter que leyó del teclado.

  #3 (permalink)  
Antiguo 16/09/2004, 16:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
tambien podrias hacerlo con un IF.
algo asi como
printf(ingrese caracter)
scanf(car)
if ((car==1) || (car==0) ...etc))
//continua el programa
else
regresa y vuela a preguntar
  #4 (permalink)  
Antiguo 21/09/2004, 11:05
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
En particular me encanta usar la siguiente forma, te quita de problemas y demas consideraciones, además de que tienes un codigo muy limpio:
Código:
do{
    op = getch();
}while(!strchr("10+./*", op));
PD. Siempre use compiladores de Borland, quiza algo tengas que corregir (aparte de que es codigo "al vuelo")
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:38.