2011-01-21 8 views
5

私は基本的にコンソールポンとなる小さなコンソールプログラムを作ろうとしています。だから、今、私はこれを持っている:cinを使わずにコンソールから入力を取得しますか?

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

画面がクリアされてから、ユーザがAまたはDキーを押した場合、私はポーリングする必要がある唯一の入力があります。私はまた、いつ鍵が解放されるのかを知る必要があります。私もこのクロスプラットフォームをやろうとしています。

私が必要とするのは、if(keyWasDown( 'a')){}のような機能です。

おかげ

+1

標準的な方法はありません。答えはプラットフォーム固有のものになります。 – GManNickG

答えて

7

はたぶん、あなたは両方の<conio.h>から、kbhit(非ブロッキング)またはgetch(ブロッキング)をしたいです。 もあり、<stdio.h>または<cstdio>です。

プログラムでキーボードを押すのを待つ場合は、getchまたはgetcharを入力します。

あなたがgetchgetcharのいずれかと組み合わせkbhitで十分で、プログラムがキーボードを押して待つ必要はありませんた場合。

しかし、GManによると、これらの方法は実際にはクロスプラットフォームではありません(異なるプラットフォームでこれを試すつもりがない場合は、実際にはそうです)。コンソールゲームでは、ncursesを調べることに興味があります。

+0

どのオペレーティングシステムですか? – Raedwald

+0

少なくともWindows。私はそれが私の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; 
} 
 
関連する問題