Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con el getch, getche, getchar, etc..

Estas en el tema de Duda con el getch, getche, getchar, etc.. en el foro de C/C++ en Foros del Web. Hola amigos, yo se que estas expresiones deteptan el valor de una tecla presionada. pero por ejemplo si quiero deteptar un numero??? con getch y ...
  #1 (permalink)  
Antiguo 10/11/2010, 11:01
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Duda con el getch, getche, getchar, etc..

Hola amigos, yo se que estas expresiones deteptan el valor de una tecla presionada.

pero por ejemplo si quiero deteptar un numero???

con getch y getche cuando presiono un 1 en el teclado me devuelve el valor de 49

yo quiero que si preciono un 1 me devuelva 1 si preciono un 5 me devuelva 5.

como puedo lograr esto??

muchas gracias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 10/11/2010, 11:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con el getch, getche, getchar, etc..

eso es porque lo que detecta es el valor ASCII del caracter leído.
Si querés obtener el valor numérico, podés aprovechar que en el código ASCII los números tienen códigos consecutivos, y hacer:

numero = caracter_leido - '0'

El código decimal del 0 es 48, el del 1 es 49. Por lo tanto, si el caracter leído es 1 la resta anterior es 49-48 y numero obtiene el valor 1.
  #3 (permalink)  
Antiguo 11/11/2010, 10:11
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Duda con el getch, getche, getchar, etc..

muchas gracias.

Y una pregunta mas, como implemento eso con un switch case '1' ???
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 11/11/2010, 10:16
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con el getch, getche, getchar, etc..

¿para qué querés un switch? numero = numero_leido - '0' te dará todos los números correctamente (siempre que numero_leido sea >= '0' y <= '9')

Etiquetas: Ninguno
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 14:11.