2012-03-12 7 views
1

私は、キーを押すだけで、一時停止して再開したいと思っていた原始的な時間キーパーを作っています。C++の基本的な一時停止/再開機能

system("pause>null") 

は、キーがヒットするまでプログラムを一時停止しますが、条件付きで書かれたものはどのように開始されるのですか?擬似コードで

好ましい構造:このような

if (certain_key_pressed) 
{ 
    pause_program_until_any_key_hit; 
} 
+0

pause> nullはOSに依存します。あなたは、標準IOメソッドを見て、どのようなものが存在するのかを見てきました。 – John3136

+0

の可能な複製[どのようにキーを押し続けるとシミュレーションするのですか?](http://stackoverflow.com/questions/1449324/how-to-simulate-press-any-key-to-continue) – Johnsyweb

答えて

0

ここから2つのイディオムがあります。ポーリングまたはイベント駆動型プログラミング。

ポーリングは、ポーズボタンがループ内でヒットしたかどうかをプログラムが定期的にチェックする、よりシンプルですが、しばしばそれほどエレガントなソリューションです。

While(not_quit) 
{ 
    if(key_pressed) 
     Etc... 

イベント駆動型プログラミングでは、pauseButtonPressedイベントをイベントハンドラに登録します。一時停止ボタンが押されると、そのイベントを処理するタスクに割り当てられた特別な機能が一時停止機能を呼び出す。

+0

イベント駆動型スタイルは私のニーズに完全に合っています。 – aadah

0
if (certain_key_pressed) 
    while (true) 
    { 
     if (any_key_hit) 
      break; 
    } 

何かが特定のキーが押されたとき、それは(おそらくあなたのプログラムループ)に配置されている任意のループを中断します。その後、キーが押されるまでキーを押し続ける。

関連する問題