C/Visual C - Leer entradas del teclado

 
Vista:

Leer entradas del teclado

Publicado por abi (54 intervenciones) el 22/05/2003 23:42:01
Hola! como le hago para hacer un programa en C en donde en el programa ejecutable si yo aprieto la tecla F1 el programa reconozca que se tecleo la tecla F1 y haga algo por ejemplo mostrar una ayuda, si se como mostrar la ayuda pero no se como hacer que el programa reconozca que se tecleo F1, otro ejemplo sería que si en el programa aprieto la tecla de flecha hacia arriba haga otra cosa. Mi duda es como le hago para que un programa reconozca las flechas y las teclas de F1, F2, ... la tecla de inicio, fin, repág, avpág etc.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Manejo de teclas especiales en un programa en C

Publicado por Alejandro (1153 intervenciones) el 11/06/2025 00:43:34
Para que un programa en C reconozca teclas especiales como F1, las flechas y otras teclas de función, puedes utilizar la función `getch()` de la biblioteca `<conio.h>`. Esta función permite leer la entrada del teclado y puede detectar teclas especiales.

Ejemplo de código



A continuación, te muestro un ejemplo de cómo puedes implementar esto en un programa en C:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <conio.h>
 
int main() {
    int tecla;
 
    printf("Presiona F1 para mostrar ayuda, o usa las flechas para navegar.\n");
    printf("Presiona ESC para salir.\n");
 
    while (1) {
        tecla = getch(); // Espera a que se presione una tecla
 
        // Verifica si se presionó una tecla especial
        if (tecla == 0 || tecla == 224) {
            // La siguiente llamada a getch() leerá la tecla especial
            tecla = getch();
 
            switch (tecla) {
                case 72: // Flecha hacia arriba
                    printf("Has presionado la flecha hacia arriba.\n");
                    break;
                case 80: // Flecha hacia abajo
                    printf("Has presionado la flecha hacia abajo.\n");
                    break;
                case 75: // Flecha hacia la izquierda
                    printf("Has presionado la flecha hacia la izquierda.\n");
                    break;
                case 77: // Flecha hacia la derecha
                    printf("Has presionado la flecha hacia la derecha.\n");
                    break;
                case 59: // F1
                    printf("Has presionado F1. Mostrando ayuda...\n");
                    // Aquí puedes llamar a tu función de ayuda
                    break;
                // Agrega más casos para otras teclas de función si es necesario
                default:
                    printf("Tecla especial no reconocida.\n");
                    break;
            }
        } else if (tecla == 27) { // ESC
            printf("Saliendo del programa.\n");
            break; // Salir del bucle
        } else {
            printf("Has presionado la tecla: %c\n", tecla);
        }
    }
 
    return 0;
}

Explicación del código



1. Incluir `<conio.h>`: Esta biblioteca proporciona la función `getch()`, que se utiliza para leer la entrada del teclado.

2. Bucle infinito: El programa entra en un bucle infinito donde espera a que se presione una tecla.

3. Detección de teclas especiales:
- Cuando se presiona una tecla, `getch()` devuelve un valor. Si el valor es `0` o `224`, significa que se ha presionado una tecla especial.
- Se llama a `getch()` nuevamente para obtener el código de la tecla especial.

4. Códigos de teclas:
- Los códigos para las flechas son:
- Flecha hacia arriba: `72`
- Flecha hacia abajo: `80`
- Flecha hacia la izquierda: `75`
- Flecha hacia la derecha: `77`
- El código para F1 es `59`.

5. Salir del programa: Si se presiona la tecla ESC (código `27`), el programa sale del bucle y termina.

Consideraciones


- Este código es específico para entornos de consola en sistemas DOS o Windows. Si estás trabajando en un entorno gráfico o en un sistema diferente, el manejo de teclas puede variar.
- Asegúrate de compilar el programa en un entorno que soporte `<conio.h>`, como Turbo C o Visual C++.

Con este enfoque, podrás detectar y manejar teclas especiales en tu programa en C. ¡Buena suerte, Aby!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar