問題タブ [getch]
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.
c - getch(); C およびコードブロックのランタイム エラー
コードブロック IDE と gcc コンパイラを使用しています。簡単な課金システムのプログラムを書いてみました。文字入力の場合、プロジェクトのビルド中にエラーは発生しませんが、実行時にエラーが発生し、「現在のウィンドウがなかったときに描画操作が試行されました」のようなエラー メッセージが表示されます。実際の問題は何でしたか。
c - C - getKeyState() が getch() と競合しています。
私は C で小さなプログラムを書いています。いくつかの仮想キー (矢印キー、return、esc) と 'S' キーの状態を処理する必要があるため、GetKeyState を選択しました。問題は、GetKeyState/GetAsyncKeyState が標準入力に迷子の文字を入れるため、getch() を使用して「任意のキーを押してください」というメッセージを表示できないことです。コード例を次に示します。
プログラムがgetInput()
KEY_RETURN または KEY_S を返す関数から終了すると、次の getch() はバイパスされ、プログラムはそのまま終了します。getInput()
関数内または getch() の前にスリープ時間を長くしても、何も解決しません。文字列を入力する必要があり、プログラムが既に入力バッファーに「s」、「esc」、または「enter」を入れていると、面倒です。どうすればこれを解決できますか? 前もって感謝します。
編集:手動の stdin フラッシュ (を使用) を試しましたwhile(getch()!='\n');
が、「enter」キーで動作します。「s」キーについてこれを解決する方法をまだ見つけようとしています。また、軽微な誤りを修正しました。
string - getch() にエンター ヒット (\n) を受け入れるようにするにはどうすればよいですか?
C++ でタッチ タイピング コンソール プログラムを作成しました。ファイルからテキストを読み取り、画面にロードします。ユーザーが次の文字に進むには、正しい文字を入力する必要があります。私の唯一の問題は「\ n」にあるため、テキストファイル(読み取り元のファイル)に次のようなものがあった場合:
ユーザーが「こんにちは」と入力した後、enter右を押す必要がありますか? しかし、彼が を押すたびにenter、getch() は彼を現在の行の先頭に戻します。
どうすればこれを修正できますか?
次のように、ファイル全体を読み取り、文字列に保存しています。
c++ - ノンブロッキング getch()
標準コンソールでテトリス ゲームを作成しようとしています。ノンブロッキング getch() が必要なので、キーを押さなくてもブロックを落とすことができます。キーが押されていない場合は -1 を返し、それ以外の場合はキー コードを返す関数があると便利です。
python - 自動化のためにWindowsインタラクティブコンソールプログラムをラップする方法
Windowsにインタラクティブなコンソールプログラムがあります。'e''c'のようなキーストロークを押してcmdウィンドウに移動する必要があります。人間の操作には便利ですが、プログラムの自動化には非常に困難です。
そして今、Pythonのような他のプログラムで操作しやすくするために、コンソールプログラムをラップしたいと思います。
ただし、コンソールプログラムは'getch()'を使用して、標準入力ではないキーボード入力を取得します。したがって、単純にキーをstdinに送信することはできません。
誰かがこの問題に遭遇したことがありますか?ありがとう。
編集:
最後に、win32SendMessage関数を使用して作業を行います。新しいサブプロセスをフォークしてから非表示にし、hWndとpidを取得します。
コードは次のとおりです。
python - キープレスを読み取るためのPythonメソッド?
私はPythonを初めて使用し、Pythonでゲームとメニューを作成しました。質問は、(raw_)input()を使用するには、キーを押すたびにEnterキーを押す必要があるということです。下矢印を押すと、すぐに次のメニュー項目が選択されるか、ゲーム内で下に移動するようにしたいと思います。現時点では、「down」と入力してEnterキーを押す必要があります。私もかなり多くの調査を行いましたが、単一のkeyDown()メソッドを実現するためだけに、巨大なモジュール(pygameなど)をダウンロードしたくありません。それで、私が見つけられなかったもっと簡単な方法はありますか?
編集:msvcrt.getch()
それがトリックを行う
ことがわかった。keyDown()ではありませんが、機能します。しかし、私もそれを使用する方法がわかりません、それはかなり奇妙に思えます、ここで何か助けはありますか?これは私が現時点で得たものです:
しかし、それは私にこれらすべてのナンセンスバイトを与え続けます、例えば、下矢印はこれです:
そして、それらの使い方がわかりません。chr()と比較したり、ord()を使用したりしましたが、実際には比較できません。私がやろうとしていることは基本的にこれです:
など...何か助けはありますか?
python - curses getch() は、Python のメイン ウィンドウとパッドに対して異なる値を返します。
getch()
押されたキーが非 ASCII の場合、このメソッドはメイン ウィンドウとパッドに対して異なる値を返します。たとえば、矢印キーを押すと、メイン ウィンドウで予期されるKEY_UP
などが表示さKEY_DOWN
れますが、パッド65
では上矢印と66
下矢印が表示されます。これはなぜですか? また、パッドの特殊キーの値を 255 より大きくする方法はありますか?
Python 2.6.5 を使用しています。
次のコードは、この問題を示しています。
c++ - _getch() が Windows サーバー 2012 で機能しない
ユーザーがパスワードを入力でき、画面にエコーしないようにするための DLL が必要です。だから私は_getch()
このようなエコーなしで文字を取得するために使用します、
コードをコンパイルするには、Microsoft vs2005 を使用します。
Windows Server 2003/2008 では動作しますが、新しい Windows Server 2012 では文字が画面にエコーされます。
私の問題は、_getch()
Windows Server 2012 でのみ文字をエコーするのはなぜですか? そしてそれを修正する方法は?
c - この 2 次元の char 配列に対する char 入力の何が問題になっていますか? K*K 入力の合計を取らないのはなぜですか?
ユーザーから 2 次元の char データを取得しようとしていますが、ユーザーからの入力を適切に取得していません。次のコードのバグを強調していただけますか?
で置き換えてみましchar
たint
。整数に対してはうまく機能します。
char
からの読み取りの何が問題になっていstdin
ますか?