問題タブ [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 投票する
3 に答える
971 参照

c - C で独自の kbhit() をプログラムすることは可能ですか?

私は大学でプログラミングのクラスを取り、いくつかのプログラムに取り組んでいます。kbhit()独自の機能をプログラムできるかどうか知りたいです。と、見ていただければ、どのようkbhit()にコーディングされているか。

目的は、使用する関数がどのように機能するかを知る必要があることです。

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

python - PyCharm: msvcrt.kbhit() と msvcrt.getch() が機能しませんか?

PyCharm のコンソールから (Enter キーを押さずに) 1 文字を読み込もうとしましたが、役に立ちませんでした。関数msvcrt.getch()はコードを停止しますが、キーを押しても反応せず (Enter さえも)、msvcrt.kbhit()常に 0 を返します。たとえば、次のコードは何も出力しません。

私はWindows 7、PyCharm 3.4を使用しています(アイドル状態でも同じです)。

なにが問題ですか?入力せずに入力を読み取る他の方法はありますか?

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

c - kbhit() と getch() と system("cls") のポータブルな代替手段

ポータブルな方法で kbhit および getch 機能を使用する方法が必要です。現在、単純な ASCII ゲームを開発しており、キーが押されたかどうかを検出する必要があります。そうである場合はそれを読む必要があり、そうでない場合は入力を待たずに続行する必要があります。私はそれを繰り返したくありませんが、それについてうるさくするつもりはありません。これにはkbhitとgetchが最適だと思いますが、完全に移植可能なコードのみを使用できます(少なくともLinux、Mac、およびPC用のコードですが、他の多くのOSは思い浮かびません)。私が理解しているように、termios、curses、および conio ライブラリは、私が必要とする 3 つの OS すべてに完全に実装されているわけではありません。私は途方に暮れています。私が見つけたすべてのソリューションは、移植性のないコードを使用しています。これのために移植可能な関数を自分で書くことができる方法はありますか? 現在、stdio.h、stdlib.h、および time.h をインクルードしています。また、現在 system("cls") と system("clear") を使用しているため、OS を変更するたびに変更する必要があるため、画面をクリアするポータブルな方法も必要です。 if-else を実行し、コードが実行されている OS を検出して、これら 2 つのステートメントを切り替えます。これらの機能を持つコードの一部を次に示します。

これは基本的にコードに必要な機能ですが、それを実行するための移植可能な方法がわかりません。また、教師は、標準の c および標準ライブラリを使用して Linux、Mac、および PC でコードを動作させることを要求しています。助けてください!c++ は使用しないでください。c を使用しています。

編集: ncurses が私が探していたものではなかったとは思いません。#ifdefコンパイル時にこれらを実装するために使用することを誰かが勧めました。このソリューションは気に入っていますが、現在のセットアップでは Windows でしかテストできないため、Linux と Mac でこれを行う方法を理解するための助けが必要です。願わくば、近いうちに別のマシンで Linux をテスト用に走らせたいと思っていますが、OSX には大きな値札が付いているので、助けていただければ幸いです。現在のコードは次のとおりです。

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

c - 異なるループを使用すると異なる出力が得られるのはなぜですか?

パスワードのように、4 文字を入力し、各文字の代わりに「*」を出力するコードを作成しました。作業コードは次のとおりです。

ここで 2 つの質問があります: 1) ループを次のように変更すると、なぜ 4 つの ╠ が表示されるのですか?

2) 2 番目のループの上限を c<=4 に変更すると、最後に余分な ╠ が付くのはなぜですか?

2 番目のループは次のとおりです。

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

c++ - GetAsyncKeyState() をデフォルトにリセット

を組み合わせて使用​​しkbhit()、コンソール ゲームを構築する方法を学んでいます。GetAsyncKeyState()getch()

Visual Studio 2010 Express を使用しています。c/c++ ヘッダーは問題ありません。

互換性の問題 (Windows プラットフォームでのみ実行) は問題ではありません。

次の簡単なコードを見てください。

問題は、仮想キー入力が 2 回表示され、他のキー入力が正常に実行されることです。

何が問題なのかわかりませんが、簡単な修正方法を見つけました。

私の推測でGetAsyncKeyState()は、デフォルト値に適切にクリアされていません

説明はありますか?

また、_getch()for everykbhit()を追加するとGetAsyncKeyState()一種の冗長性があるため、可読性が低下します。代替手段はありますか?

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

c++ - OS X で windows.h を使用できますか?

私はコンピューター サイエンスを勉強しており、電話でビジュアル スタジオを使用しています。Mac で作業したいのですが、windows.h はサポートされていません。代替品はありますか?どうにかして sleep または _khbit を使用できますか?

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

c++ - switchステートメントで別のキーが押されるまで、プログラムを繰り返しインクリメントするにはどうすればよいですか

私はそれらのスネークゲームの1つに取り組んでおり、キーを押してスネークをインクリメント/デクリメントする方向に動かすかどうかを示すswitchステートメントがありますが、それを保持している場合にのみそれを行います。ユーザーがそのキーを保持しなくても、ヘビの場所を増やし続ける方法を探しています。以下に1つのケースを置きます