問題タブ [kbhit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
923 参照

c - Eclipse コンソールに入力が入力されると、kbhit() が常に 0 を返すのはなぜですか?

Windows 7 x64 で C/C++ 用の Eclipse CDT (Helios) を実行しています。最初は、Eclipse コンソールで実行すると、プログラムが終了するまで出力が表示されないという問題がありました。これは、stdout ストリームでのバッファリングに関係していることを発見しました。次の方法でバッファリングを無効にすることができました。

しかし、コンソールでキーが押されても kbhit() が常に 0 を返す理由がわかりません。標準入力でバッファリングを無効にしようとしました:

しかし、これは効果がありませんでした。私のプログラムはシェルアプリケーションです。kbhit() と getch() を使用して入力を読み取ります。これは、プログラムが Windows コンソールで実行されている場合に機能しますが、Eclipse コンソールでは機能しません。ここで何が欠けていますか?

0 投票する
1 に答える
2240 参照

clojure - Clojure でキーが押されるのを待つ方法

ユーザーがキーを押したときにループから抜け出したい。

C では、kbhit() を使用します。Clojure (または Java) に相当するものはありますか?

0 投票する
1 に答える
153 参照

scroll - 文字列の末尾に空白を挿入する

文字列テキストに空のスペースを挿入するにはどうすればよいか疑問に思っていました(char *text = argv[1]; で定義されています)。

たとえば、書き込みの場合:


./mar "こんにちはお元気ですか"


を見たいのですが/


こんにちはお元気ですか こんにちはお元気ですか こんにちはお元気ですか こんにちはお元気ですか

そしてそうではない


こんにちはお元気ですかこんにちはお元気ですかこんにちはお元気ですかこんにちはお元気ですかこんにちはお元気ですか

CLIで水平にスクロールします。

コードは次のとおりです。

0 投票する
2 に答える
5972 参照

c++ - kbhit() と getch() の使用中にキー バッファをクリアする方法

幸いなことに、Windows 2000以降用の上記のWindows関数を使用していますが、コンソールでゲームを作成しているときに問題に遭遇しました:キーが押されるとすぐに、コンソールはkbhit( )キーが再び押されなくても機能します...

新しいキーを押さないと kbhit が渡されないように、キーボード プレス バッファをクリアする方法はありますか?

新しいライブラリのダウンロードが必要な場合は、できると思います...しかし、Windows標準の方法を望んでいます!

ありがとう!!

0 投票する
1 に答える
213 参照

java - キーを押すことによってバックグラウンド タスクでアプリケーションを終了するための別のスレッドは良い戦略ですか?

バックグラウンドでいくつかのタスクを実行するコンソール Java アプリケーションがあります。Java は、キーボード バッファーに何かがあるかどうかをテストするためのコンソール kbhit() をサポートしていません。コンソールのすべての読み取りとテストがブロックされていることがわかっています。

私がやろうとしているのは、console.readLine() のようなものでバックグラウンド スレッドを開始し、このブロッキング コールが終了した後に何らかの終了フラグを設定することです。アプリケーションのバックグラウンド タスクは、このフラグをチェックして、終了する必要があるかどうかを判断します。

ところで、私のアプリケーションは作業中 (logback などによるログ記録) にコンソールに書き込みますが、それを読み取ることはありません。

そのような戦略は良いものですか?

0 投票する
2 に答える
1030 参照

c++ - キーストロークまで C++ ループ

キーストロークまでループしたい場合は、非常に優れた Windows ソリューションがあります。

ただし、これは ISO 機能ではなく、MS Win 以外のオペレーティング システムでも動作します。他のクロスプラットフォーム ソリューションを見つけましたが、それらは非常に紛らわしく、肥大化しています。これを管理する別の簡単な方法はありませんか?

0 投票する
1 に答える
1475 参照

c++ - 待機せずに遅延して kbhit() を使用する方法

私は無限ループを持つプログラムを作成しています。キーが押されたかどうかを検出するために kbhit() を使用しました。ループで遅延も使用しています。したがって、問題は、キーを押すと、遅延関数で指定された時間だけ待機して、kbhit() 関数アクションを実行する必要があることです.....

//今、kbhit() のコードを実行するために 1000 ミリ秒待たなければなりません。この問題を解決する方法..

前もって感謝します....

0 投票する
1 に答える
846 参照

c++ - ループで複数の _kbhit() を使用する

2 つのメソッドを持つ Spaceship オブジェクトがあります。最初のメソッドは move()

2番目のメソッドはshoot()です

両方のメソッドが次々に呼び出されるため、2 番目のメソッドはほとんど機能しません。これは、move() メソッドを通過した直後に「スペース」を押す必要があるためです。2 つの方法を分けておきたいのですが、これを機能させる方法はありますか?

0 投票する
3 に答える
1249 参照

c++ - if ステートメント ラグのある C++ kbit

kbhit を if ステートメントで使用すると、作成中のゲームで奇妙な遅延反応が発生します。ただし、switch ステートメントを使用している場合、この同じ遅延の問題は発生しません。IF と switch の両方のコードを次に示します。

以下のこのコードは、キャラクターを動かそうとするとラグが発生します。キャラクターを動かすには、ボタンを 2 回押す必要があります。

遅延を発生させない switch ステートメント

見た目がすっきりするので、ifステートメントをより適切に使用したいと思います。