問題タブ [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()およびclrscr()のc++代替
code::blocks
C++のコンパイルには10.05を使用します。
でも使えない
それは言うunknown
。私が#include <conio>
それが未知の図書館と言うとき。getch
では、C ++で使用できる代替手段は何ですか?
c - getch は余分な文字を期待します
こんにちは、私はプログラミングが初めてで、Cでプログラムを書いています。
私のヘッダーファイルには、次のマクロがあります。
私のプログラムには、このコードがあります
では、私が聞きたかったのは、戻るように頼むときyesno(c)
はボタンを 1 回だけ押さなければならないのに、return を使用するときyesno(getch())
はボタンを 2 回または 3 回押さなければならないのはなぜですか?
getch()
マクロから呼び出された場合に問題はありますか?
c - getch()はEnterキーを待ちますか?
私はWindows7でC-Free4Standardを使用しており、Cプログラムを作成しています。
プログラムを一時停止する関数としてgetch()を使用していますが、押された文字が画面にエコーし、Enterキーが押されるのを待ってから次に進みます(方法と何ら変わりはありません) scanfは機能します)。getche()を試しましたが、エコーは表示されますが、正常に動作します。
getch()関数の問題は何でしょうか?
c - ユーザーが「.」を入力すると「scanf」を停止します。ドット
以下の関数をいじっています。ユーザーが DOT 文字を入力したときに入力キャプチャを終了したいです。getche()
意図したことをしていないようです:
アップデート
私は十分に明確ではなかったようです。私がやろうとしているのは、ユーザーが DOT を入力すると、ENTER キーを押すように動作して、プログラムが次のステップに進むことです。ある種のシミュレートする ENTER キー。
c++ - getch() 関数と scanf() 関数の違い
次のコードの実行中に問題が発生しました。変数 't' は、1 回の実行が完了すると null 値を取ります。この問題は、scanf() の代わりに getch() を使用することで解決されました。しかし、なぜそれが起こっているのかわかりません。説明はありますか?動かなかったプログラムです。
さて、これは正しく実行されるプログラムです。
java - JNIを介して実現されたJavaのノンブロッキング入力
私はJavaを使用してコマンドシェルを設計することを追求しています。私がすぐに実装しなければならなかった重要な機能の1つは、「タブ」キーが押されているときにコマンドシェルによって促進される「オートコンプリート」でした。このために、私は、非ブロッキングモードで入力コマンドを文字ごとに読み取る必要があると考えました。
残念ながら、私が理解しているように、JavaAPIはいずれも非ブロッキング入力をサポートしていません。つまり、ユーザーが「Enter」キーを押すまで入力待機(ブロック)を読み取ることを目的としたJava APIは、私の場合は非常に望ましくありません。また、サードパーティのJavaライブラリを使用しないことを決心しました。 (JLineなど)。
だから、私はJNIに頼らなければなりませんでした。ネイティブの.Cファイルは次のように見えます-
そして、前述のネイティブメソッドが呼び出される対応するJavaメソッド:
また、ネイティブ.dllのリンクに関して面倒なことはありません。そして、現在のところ、「InterruptableCharacterArray」には「\ t」(「tab」キー)のみが含まれています。したがって、現在のインデックスの値は1です。
Probelm:
1>コントロールがブロックされていないようです:
つまり、ユーザーがその行でJavaコンソールを介して入力を入力することを許可していないようです。これはそれを行うことを目的としています。そして、getche()の場合でも同じ問題があります(ノンブロッキングですがエコーします)
代わりに、各反復で「変数」に対してデフォルトのガベージ値が取得され、次のステートメントが実行されたときにコンソールに出力されます。
ただし、この私のコードは、getch()がgetc(stdin)、getchar()などのブロックする対応物に置き換えられたときに魅力のように機能します。
JNIを介してgetch()を呼び出す際の問題が正確に何であるかを理解することはできません。
2>また、同じことを達成するための他の代替ソリューションが提案された場合、私は感謝します。
前もって感謝します !
編集:コマンドシェルは、WindowsとUnixベースのO/Sの両方に実装されます。
c - kbhitとgetchの使い方(Cプログラミング)
printf
ユーザーが大文字以外のキーボードのボタンを押すと特定の文字列を表示する関数を作成しようとしています。P
ユーザーが押すP
とループが中断されます。
しかし、私は適切に使用_kbhit
しているとは思いません。_getch
数字の80を使用します。これは80のASCII記号だからです。混乱してすみません。
c - CでのTwitterのような「文字を残す」機能の問題:次の行に行かないようにするにはどうすればよいですか?
最後の質問と同様に、これは私の学校のプロジェクトに関するものです。C で「twitter のような」プログラムを作成する必要があり、レイアウトに小さな問題があります。このコードは最適化されていないことを認識しており、基本を機能させるために最初に「遊んでいる」ことを覚えておいてください。
これが私が問題を抱えている機能です(すべての \b で printf に注意を払わないでください。一時的で非常に面倒です):
この関数を使用すると、ユーザーはメッセージを入力し、入力できる文字数が表示されます (DIM_MSG 定数はこのサイズです)。基本的に、ユーザーが入力すると、テキストの右側に書かれた文字数が表示されます (テキスト ボックスの下部にある twitter のようなものです)。
私が抱えている問題は、長いものを入力してコマンドウィンドウの横に到達すると、「壊れて」次の行に移動し、ウィンドウに次のようなものが表示されることです。
気になるのは、テキストを削除すると (バックスペース キーまたは '\b' )、現在の行で停止することです。例を見ると、最後の行の「ttest」を削除できて、スタックします (ただし、カウンターは移動せずにダウンします)。
これを修正する方法、またはこれを改善する方法についてのアイデアがあれば、すべて大歓迎です!
前もって感謝します !