2012-01-04 3 views
2

入力を待たないC関数はありますか?存在すればそれを検出しますか? 私がここでやろうとしているのは、何かキーが押されるまで無限ループを続けることです。 私は初心者で、私が今までに学んだすべての入力機能は、ユーザーが何かを入力するのを待っています。 私は明確ではないかと思いますが、私はコードを投稿して喜んでいます。 。入力を待ちませんが、もしあれば検出するC関数?

+1

使用しているOSとコンパイラは何ですか? –

+0

@MikeNakis Windows 7の究極のx86とGNU GCCコンパイラを使ったcode :: blocks –

答えて

3

Linuxのover here

+1

ありがとうございます..押されているものを取得するgetch()とkbhit()は素晴らしいです。:) –

+0

@Shashwat Mehta - あなたのために良い!フィードバックをお寄せいただきありがとうございます。この回答を受け入れることを忘れないでください。 –

0

あなたはまた、あなたは必要なすべてがループを停止し、プログラム機能のあなたの終わりを実行するための方法である場合)(信号をチェックすることをお勧めしますselectまたはpoll

0

使用する必要があります。

それはあなたが正確に何をしたいかによって異なりますが、一般的には:

A)あなたがシングルスレッドプログラムを維持し、読み、ノンブロッキング入力を介して入力を確認してください。

B)入力を処理し、結果をメインスレッドに返信する別のスレッドを生成します。

+1

まあ、それほど難しい "非ブロック入力読み込み"は、彼が求めているものです。 –

2

ためkbhit()はまさにこのが非ブロックキーボードチャー準備チェックを行い、そしてkbhitは(そこのWindows)誰もが明確に述べられていないですので....

重要注意すべき点は、Cが提供する標準ライブラリがではなく、であることです。それを達成するには、使用しているオペレーティングシステムに関する第三者図書館や特別な知識の使用が必要です。

通常、一部のサードパーティ製ライブラリを利用できます。たとえば、Visual Studioを使用していた場合、http://msdn.microsoft.com/en-us/library/58w7c94c(v=VS.100).aspxを使用できます。私はあなたのセットアップで何が利用できるか分かりません。

+1

ありがとう.. kbhit()とgetch()は、何が押されているかを取得するために素晴らしい動作します.. :) –

関連する問題