問題タブ [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.

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

c - Cでncursesアプリ-標準入力の読み取り

私はOSアカデミッククラス用のLinux標準lessコマンドの簡略版を書いていますが、それを簡単にするためにncursesを使用することが許可されています。「簡略化」とは、ユーザーが矢印、PgUp、PgDownを使用してビューをスクロールでき、gおよびGジャンプコマンドも使用できることを意味します。また、プログラムは、ファイル(パラメータとして指定された名前)または標準の入力ストリーム(次のような)から入力を読み取る必要があります。

ファイルからの読み取りは簡単で(この場合は問題ありません)、パイプライン演算子を使用しているときに問題が発生します-getch()は-1(EOF)を返し続け、キーを押しても応答しません。私の現在のコードは次のようになります。

ストリームをフラッシュすることだと思いましたが、同様の解決策はどれもうまくいきませんでした。stdinから最後まで(EOF)まですべてのデータを読み取ったので、EOFがバッファーに残っている理由がわかりません。

これに対する回避策はありますか?同様の質問を閲覧しましたが、問題の手がかりは見つかりませんでした。たぶんncursesは私のタスクにとって良い解決策ではありませんか?

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

linux - ncurses の getch() が機能しない

プログラムのメインループを作成する必要があり、次の関数を記述しました。

}

しかし、 getch() は機能せず、ループで -1 を出力します。どうやって?特別な attr を設定したり、特別な関数を呼び出したりできますか?

0 投票する
5 に答える
4838 参照

scala - コンソールでキーの押下を検出する方法は?

Scalaでローグライクを書いています。たとえば、ユーザーがいつ矢印キーを押したかを確認できる必要があります。私が見つけたすべての解決策では、プレイヤーがエンターを押す必要があります。

C の getch() と同様の方法でコンソール アプリのキー押下を検出する方法はありますか?

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

python - Linux ターミナル バッファ内の余分な文字を確認する

Python で関数を実装しようとしましたがgetch()、F1-F12 や矢印キーなどの特殊キーの文字のリストも返す必要があります。これらの特別なキーは、連続して複数の文字を生成します。したがってgetch()、ブロッキング モードで 1 文字を読み取り、入力バッファに余分な文字があるかどうかを確認して、それらも取得する必要があります。

call をtermios.FIONREADioctlと共に使用して、入力バッファー内のバイト数を取得しています。バッファにスタックされた非特殊キーの押下をキャッチしますが、特殊キーからの余分な記号は見逃します。2 つの異なるバッファーがあるようです。誰かがこれを説明してくれたらうれしいです。

インタラクティブな例を次に示します。

sleep(1)途中注意。この秒が切れる前に 1 つのキーを押すと、出力は次のようになります。

1 秒間に 5 つの通常のキー (「asdfg」など) を入力すると、出力は次のようになります。

ただし、単一の矢印キーの場合、出力は次のようになります。

ここで 2 つの質問があります。

  1. 通常のキー押下でキュー内の 4 つのシンボルが破棄されるのはなぜですか? 「生」端末モードに切り替えたためですか?getch()端末を「生」モードのままにしなくても、後続の実行のために文字を保持するにはどうすればよいですか?

  2. ioctl特別なキーを 1 回押すだけのバッファが空になるのはなぜですか? それらのキャラクターは、その後のgetch()実行のためにどこから来ていますか? それらを確認する方法は?

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

c - OS X の矢印キー

コンソール用の小さなゲームを作ろうとしているので、どの矢印キーが押されているかを確認する必要があります。インターネットで有用なものが見つかりません。

これまでのところ、私はこれを試しました:

しかし、 getch() は、どの矢印を押しても、常に 27 を返します。

何か案は?

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

c - getch と putchar が return なしで機能しない

getch私は別のプログラムで仕事をしようとしてきましたが、うまくいきませんでした。getchそれで、メインプログラムで動作させたい方法で使用できる最も基本的なプログラムを作成しました。

noechocbreakinitscrおよびの必要性を調査しました。nodelay使用も試みnewscr()ましたが、成功しませんでした。

put私が抱えている問題は、ループごとに画面に表示する必要があるときに、「Enter」を押すまで文字が画面に出力されないことです。なぜこうなった?また、改行してもカーソルが画面左に戻りません。例えば。

私は答えを探しましたが、再び困惑しています...

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

c++ - getch()のEclipseC++代替

EclipseでC++を使用しています。Borlandコンパイラでは、getch()関数を使用して、入力内容を表示せずにユーザー入力を取得しました。

getch()関数はEclipseでは機能しません。

ユーザーが入力した記号を画面に表示せずにユーザー入力を取得する別の方法はありますか?

0 投票する
11 に答える
146915 参照

c - ゲッチと矢印のコード

getch()矢印キーのスキャンに使用するプログラムを作成しています。これまでの私のコードは次のとおりです。

問題は、、を押す'A''B''C'などの10進コードであるため'D'、コードも実行されることです。65'A'

他の人に電話せずに矢印キーを確認する方法はありますか?

ありがとう!

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

c++ - _getch が入力を変数に読み取らない

_getch() 関数に問題があります。ユーザーがメニューから選択するときに ENTER を押す必要がないようにしたいのです。ただし、使用しようとすると、データが変数に入力されないか、持っているスイッチをスキップします。Windows 7 と CodeBlocks IDE を使用しています。私は間違って何をしていますか? 前もって感謝します。

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

python - パスワードをアスタリスクとしてエコーする方法

ユーザーがユーザー名とパスワードを入力するように求められるログインウィンドウを作成しようとしていますが、パスワードを入力すると、一般的なパスワード入力のように印刷されるアスタリスクを探しています (つまり、Sekr3t は次のようにエコーされます: * * * * * *)。

ここに私がこれまでに持っているコードがありますが、アスタリスクをエコーし​​ない理由がわかりません:

どんな助けでも大歓迎です。