2011-01-21 17 views
5

Sto provando a creare un piccolo programma per console che sarà essenzialmente console pong. Così adesso ho questo:Ottenere input dalla console senza cin?

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

L'unico input che ho bisogno di sondaggio è se l'utente ha premuto il tasto A o D in quanto lo schermo è stato eliminato. Dovrò anche sapere quando viene rilasciata la chiave. Sto anche cercando di fare questa piattaforma incrociata.

quindi tutto ciò di cui ho bisogno è come un if (keyWasDown ('a')) {} tipo di funzione.

Grazie

+1

Non esiste un modo standard. Tutte le risposte che ottieni saranno specifiche della piattaforma. – GManNickG

risposta

7

Forse si vuole kbhit (non bloccante) o getch (blocco), sia da <conio.h>. C'è anche getchar, da <stdio.h> o <cstdio>.

Se si desidera che il programma attenda la pressione di una tastiera, lo farà da solo getch o getchar.

Se non desidera che il programma attendere una pressa tastiera, kbhit combinato con getch o getchar sarà sufficiente.

Tuttavia, come ha detto GMan, questi metodi non sono realmente multipiattaforma (se non si intende provare questo su piattaforme diverse, è discutibile, in realtà). Per i giochi per console, potresti essere interessato a esaminare ncurses.

+0

Quale sistema operativo? – Raedwald

+0

Almeno Windows. So che non funziona sulla mia macchina 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; 
}