Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Newbe... Ayuda con la deteccion del teclado...

Preguntas y respuestas sobre el lenguaje de programacion C/C++

Newbe... Ayuda con la deteccion del teclado...

Notapor Bruck182 el Mié Mar 02, 2005 1:01 pm

Saludos a todos, en especial a los creadores de este lugar... espero aquejarlos con mis multiples inquietudes de programador novato...

Me gustaria saber como , o mejor, que nesecito para que mi programa sepa cuando se pulso f1, o las flecha, o esc, etc, con el fin de hacer una actividad concreta. como subir y bajar el cursor con el con las flechas.

Tengo una idea baga....

algo asi como if(getch()==/*codigo ascii*/)

entonces haga tal cosa, o tal otra...

por fa, y si saben como hallar una referencia completa del codigo ascii.

muy agradecido...
---> Bruck_182
Avatar de Usuario
Bruck182
Novato
Novato
 
Mensajes: 6
Registrado: Mié Mar 02, 2005 12:42 pm

Re: Newbe... Ayuda con la deteccion del teclado...

Notapor latindeveloper el Mié Mar 02, 2005 9:55 pm

Hola,

Te doy la bienvenida a esta comunidad, sobre tu pregunta tengo que remortarme hacia el pasado muchos años luz...

En DOS las pulsaciones del teclado como a,b,c tienen un codigo ascii que pueden facilmente ser identificados... las teclas de funcion (F1,F2 ... ) y algunas especiales estan precedidas por cero, es decir:

Si presionas F1 tendras que hacer:

if(getch() == 0)
tecla_de_funcion = getch();

Igualmente ocurre con el teclado de direcciones...

Ahora, para saber que teclas (codigos) son exactamente puedes hacer correr el siguiente programa y averiguarlo

Código: Seleccionar todo
void main()
{
   int tecla = 0;
    while((tecla = getch()) != 23) // ESCAPE
    {
       cout<<"COD  :  "<<tecla<<endl;
       cout<<"ASCII:  "<<(char)tecla<<endl<<endl;
    }
}


El programa anterior captura una pulsacion del teclado y muestra su codigo numerico y que luego de que caracter ascii se trata.

Debe funcionar perfectamente... hasta que preciones la tecla ESC.

Espero haberte ayudado....

PD: No olvides que las teclas de funcion son de tratamiento especial.
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

GETCH?

Notapor Bruck182 el Vie Mar 04, 2005 4:28 pm

Saludos y gracias por su ayuda...

Resulta que para ciertas teclas, como las flechas... gecth recoge en su flujo 2 caracteres, ejm cuando pulso ← , aparece esto '\x0K', si imprimo el contenido de getch debe ser en dos turnos, (por eso digo que quedan dos caracteres) lo que se sale totalmente de la funcionalidad que debiera tener getch();
Ha, y si imprimo el eqivalente int, solo pone un 0, si imprimo el otro, me da un 75, que es codigo ASCII de la K...

Me tienen hasta haqui de que no use la biblioteca Conio... y estos problemas me convencen...

Hay otra funcion que solo tome un teclado del caracter?

Correre su prog aver que sucede... gracias.
---> Bruck_182
Avatar de Usuario
Bruck182
Novato
Novato
 
Mensajes: 6
Registrado: Mié Mar 02, 2005 12:42 pm

lO DICHO...

Notapor Bruck182 el Vie Mar 04, 2005 4:44 pm

Holas...

No, el prgrama corre rebien, pero igual, las flechas las imprime as:

COD: 75
ASCII: K

COD: 77
ASCII: M

Y esto en otra makina,

Es decir,,, mejor,,, como que no entiendo... ayuda please!

gracias...
---> Bruck_182
Avatar de Usuario
Bruck182
Novato
Novato
 
Mensajes: 6
Registrado: Mié Mar 02, 2005 12:42 pm

Re: lO DICHO...

Notapor latindeveloper el Vie Mar 04, 2005 6:29 pm

Te vuelvo a repetir .... :!: que las teclas de funcion como las F1,F2... y los cursores devuelven dos valores. es decir que envia dos valores y tienes que esperarlos. primero el cero luego el valor de la tecla de funcion...

para los cursores es algo como:

M : Izquierda
H : Arriba
K : Derecha
P : a que no sabes cual
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

OK

Notapor Bruck182 el Lun Mar 07, 2005 8:33 am

8)
Holas...
Bueno, pues parece que he entendido...
tons lo que pasa es que esas teclas siempre mandan dos valores al getch...

Gracias.
---> Bruck_182
Avatar de Usuario
Bruck182
Novato
Novato
 
Mensajes: 6
Registrado: Mié Mar 02, 2005 12:42 pm


Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron