7

cinに何かがあるかどうかを確認する方法はありますか? 私は peek() を試しましたが、何もない場合、 peek() は入力を待ちます。それは私が望むものではありません。ありがとうございました

4

2 に答える 2

5

cinを使用してキーストロークを読み取り、使用可能なものがない場合は他のことを実行することはできません。これはあなたが望むかもしれないことだと思います。cinはバッファリングされたストリームであり、そのようには機能しません。実際、標準C++を使用してこれを行う方法はありません。OS固有の機能を使用する必要があります。

于 2009-12-18T12:18:29.727 に答える
4

C ++ストリームとstreambufsは同期しています。つまり、読み取るのに十分な入力があるまでブロックされます。ストリームを非同期的にチェックする移植可能な方法はありません。別のスレッドからpeek()を呼び出すことを検討してください。

于 2009-12-18T12:18:06.180 に答える