2011-01-27 28 views
2

私はC++(ウィンドウ)で簡単なコマンドラインプログラムを書いています。 1つの機能は、キーボード入力をチェックし、特定のキーが押された場合は、プログラムを終了することです。プログラムを終了した後のコンソール出力を防ぐ方法

実際にはこれまでのところうまくいきますが、プログラムが終了すると、押したキーがすべてコマンドラインの出力に表示されますか?この動作を回避する方法はありますか?事前に

おかげで...

+0

_getch()は、特殊キーのため0または0xE0を返すと、その値のために再度_getch()を呼び出すことができます注意してください)、私は思います。 –

答えて

0

_kbhit()を使用して、値を取得するには_getch()を使用しています。実際に私はgetchは合わないので、標準C++のか、少なくともWIN32のAPIでそれをやりたい

+1

OK、標準のC/C++で 'ネイティブ'な方法がないと思います。あなたがそれを提案した方法は、かなりうまく動作します。どうもありがとう。 –

3

getchは、それはあなたが入力した文字を印刷しないという意味、何の反響がありません。ここではC/C++のすべての取得のcharの機能についていくつかの詳細情報は、次のとおりです。

http://www.daniweb.com/forums/thread37195.html

0

それはあなたがキーボード入力をチェックする方法に依存します。

実際には使用しないで入力をチェックし、それを取得できる次のプログラム(コマンドライン)の入力キューに入れます。

+0

GetAsyncKeyStateを使用しているので、おそらく正しいでしょうか?あなたは何かを提案できますか? Thx –

+0

あなたは入力に何かがあることを知っているので、 'char c; std :: cin >> c; ' –

+0

はい、そうですが、それでも端末上に出力を生成します。それ以外には、常にRETURNキーを待っていますが、progを終了することさえありません。 –

0

文字をエコーし​​ないと思われるgetch()を使用できます。私はそれが定義されているヘッダーを覚えていないが、私はconio.hだと思う(標準ヘッダーではないことを覚えておいてください)

関連する問題