Saltar al contenido

¿Cómo compruebo si se presiona una tecla en C++?

No olvides que en las ciencias un error puede tener más de una resoluciones, así que aquí enseñamos lo más óptimo y eficiente.

Solución:

Como mencionaron otros, no hay una forma multiplataforma de hacer esto, pero en Windows puedes hacerlo así:

El siguiente código comprueba si el key ‘A’ está abajo.

if(GetKeyState('A') & 0x8000/*Check if high-order bit is set (1 << 15)*/)

    // Do stuff

En caso de turno o similar deberá pasar uno de estos: https://msdn.microsoft.com/de-de/library/windows/desktop/dd375731(v=vs.85).aspx

if(GetKeyState(VK_SHIFT) & 0x8000)

    // Shift down

El bit de orden bajo indica si key está alternado.

SHORT keyState = GetKeyState(VK_CAPITAL/*(caps lock)*/);
bool isToggled = keyState & 1;
bool isDown = keyState & 0x8000;

Ah, y tampoco te olvides de

#include 

No existe una función portátil que permita comprobar si un key es golpeado y continuar si no. Esto siempre depende del sistema.

Solución para linux y otros sistemas compatibles con posix:

Aquí, para el código de Morgan Mattews proporcione kbhit() funcionalidad de una manera compatible con cualquier sistema compatible con POSIX. Utiliza el truco de desactivar el almacenamiento en búfer a nivel de termios.

Solución para ventanas:

Para Windows, Microsoft ofrece _kbhit()

Sección de Reseñas y Valoraciones

Tienes la opción de patrocinar nuestro cometido fijando un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *