que programa personales muestre leer entrada datos caracteres cadena c++ input keyboard

c++ - programa - leer datos en c



¿Cómo obtener entrada de teclado directa en C++? (3)

Actualmente estoy escribiendo un juego en C ++ en Windows. Todo va bien hasta ahora, pero mi menú se ve así:

1. Ir al norte

2. Ir al sur

3.Go East

4. Ir al norte

5.Inventario

6. Salida

Insertar elección -

Funciona bien, pero he estado utilizando ese tipo de cosas por un tiempo y preferiría una que pueda navegar con las flechas hacia arriba y hacia abajo. ¿Cómo voy a hacer esto?

Saludos por adelantado


¿Ha considerado usar una biblioteca de interfaz de usuario de la consola como ncurses ?


En Windows, puede usar la función genérica kbhit() . Esta función devuelve verdadero / falso dependiendo de si hay un teclado pulsado o no. A continuación, puede usar la función getch() para leer lo que está presente en el búfer.

while(!kbhit()); // wait for input c=getch(); // read input

También puedes mirar los códigos de escaneo. conio.h contiene las firmas requeridas.


Puede usar GetAsyncKeyState . Le permite obtener entradas directas del teclado desde flechas, botones de función (F0, F1, etc.) y otros botones.

Aquí hay una implementación de ejemplo:

// Needed for these functions #define _WIN32_WINNT 0x0500 #include "windows.h" #include "winuser.h" #include "wincon.h" int getkey() { while(true) { // This checks if the window is focused if(GetForegroundWindow() != GetConsoleWindow()) continue; for (int i = 1; i < 255; ++i) { // The bitwise and selects the function behavior (look at doc) if(GetAsyncKeyState(i) & 0x07) return i; } Sleep(250); } }