2011-01-21 9 views
5

Estoy tratando de hacer un pequeño programa de consola que básicamente será consola pong. Así que ahora tengo esto:¿Cómo obtener información de la consola sin cin?

int main() 
{ 
    while(1) 
    { 
     clearScreen(); 
     restThread(100); 
    } 
    return 0; 
} 

La única entrada que necesito es para sondear si el usuario ha pulsado la tecla A o D ya que la pantalla se ha limpiado. También necesitaré saber cuándo se lanza la llave. También estoy tratando de hacer esta plataforma cruzada.

así que realmente todo lo que necesito es como un tipo de función if (keyWasDown ('a')) {}.

Gracias

+1

No hay una manera estándar. Cualquier respuesta que obtenga será específica de la plataforma. – GManNickG

Respuesta

7

Tal vez usted quiere kbhit (no-bloqueo) o getch (bloqueo), ambos de <conio.h>. También hay getchar, de <stdio.h> o <cstdio>.

Si desea que el programa espere un teclado, presione getch o getchar por ellos mismos.

Si no desea que el programa espera a una prensa teclado, kbhit combinada con getch o getchar será suficiente.

Sin embargo, como dijo GMan, estos métodos no son realmente multiplataforma (si nunca intenta probar esto en diferentes plataformas, eso es discutible, realmente). Para juegos de consola, es posible que le interese buscar en ncurses.

+0

¿Qué sistema operativo? – Raedwald

+0

Al menos Windows. Sé que no funciona en mi máquina Linux. –

3
 

#include <stdio.h> 
#include <conio.h> 

int main() 
{ 
    while(1) 
    { 
     clearScreen(); 

     if(kbhit()) 
     { 
      int const ch = getch(); 
      switch(ch) 
      { 
      case 0x61: printf("A was pressed!\n"); break; 
      case 0x64: printf("D was pressed!\n"); break; 
      } 
     } 

     restThread(100); 
    } 

    return 0; 
} 
 
Cuestiones relacionadas