私はC++(ウィンドウ)で簡単なコマンドラインプログラムを書いています。 1つの機能は、キーボード入力をチェックし、特定のキーが押された場合は、プログラムを終了することです。プログラムを終了した後のコンソール出力を防ぐ方法
実際にはこれまでのところうまくいきますが、プログラムが終了すると、押したキーがすべてコマンドラインの出力に表示されますか?この動作を回避する方法はありますか?事前に
おかげで...
私はC++(ウィンドウ)で簡単なコマンドラインプログラムを書いています。 1つの機能は、キーボード入力をチェックし、特定のキーが押された場合は、プログラムを終了することです。プログラムを終了した後のコンソール出力を防ぐ方法
実際にはこれまでのところうまくいきますが、プログラムが終了すると、押したキーがすべてコマンドラインの出力に表示されますか?この動作を回避する方法はありますか?事前に
おかげで...
_kbhit()
を使用して、値を取得するには_getch()
を使用しています。実際に私はgetchは合わないので、標準C++のか、少なくともWIN32のAPIでそれをやりたい
OK、標準のC/C++で 'ネイティブ'な方法がないと思います。あなたがそれを提案した方法は、かなりうまく動作します。どうもありがとう。 –
getch
は、それはあなたが入力した文字を印刷しないという意味、何の反響がありません。ここではC/C++のすべての取得のcharの機能についていくつかの詳細情報は、次のとおりです。
それはあなたがキーボード入力をチェックする方法に依存します。
実際には使用しないで入力をチェックし、それを取得できる次のプログラム(コマンドライン)の入力キューに入れます。
GetAsyncKeyStateを使用しているので、おそらく正しいでしょうか?あなたは何かを提案できますか? Thx –
あなたは入力に何かがあることを知っているので、 'char c; std :: cin >> c; ' –
はい、そうですが、それでも端末上に出力を生成します。それ以外には、常にRETURNキーを待っていますが、progを終了することさえありません。 –
文字をエコーしないと思われるgetch()を使用できます。私はそれが定義されているヘッダーを覚えていないが、私はconio.hだと思う(標準ヘッダーではないことを覚えておいてください)
(
_getch()
は、特殊キーのため0
または0xE0
を返すと、その値のために再度_getch()
を呼び出すことができます注意してください)、私は思います。 –