2011-01-21 14 views
5

Próbuję zrobić mały program konsoli, który będzie w zasadzie konsolowym pongiem. Więc teraz mam to:Uzyskiwanie danych wejściowych z konsoli bez cin?

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

Jedyne wejście muszę sondowania jest, jeżeli użytkownik nacisnął klawisz A lub D, ponieważ ekran zdaje. Będę również musiał wiedzieć, kiedy klucz zostanie wydany. Próbuję również zrobić tę platformę krzyżową.

tak naprawdę wszystko, czego potrzebuję jest jak if (keyWasDown ("a")) {} rodzaj funkcji.

Dzięki

+1

Nie ma standardowego sposobu. Wszelkie otrzymane odpowiedzi będą zależały od platformy. – GManNickG

Odpowiedz

7

Może chcesz kbhit (nieblokujące) lub getch (blokujące), zarówno z <conio.h>. Istnieje również getchar, z <stdio.h> lub <cstdio>.

Jeśli chcesz, aby program oczekiwał na naciśnięcie klawisza, zrobi to samodzielnie getch lub getchar.

nie Jeśli ty chcesz program czekać na prasie klawiatury kbhit w połączeniu z obu getch lub getchar wystarczy.

Jednak, jak powiedział GMan, te metody nie są tak naprawdę platformą wieloplatformową (jeśli nigdy nie zamierzacie tego wypróbowywać na różnych platformach, to jest dyskusja naprawdę). W grach konsolowych możesz zainteresować się analizą ncurses.

+0

Który system operacyjny? – Raedwald

+0

Przynajmniej Windows. Wiem, że to nie działa na moim komputerze z Linuksem. –

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; 
} 
 
Powiązane problemy