0

Cを使用してSTDINからピリオドの後にTabキーが押されたときにテキストを自動入力するにはどうすればよいですか?

入力は次のようになります。

C:\>autofil.exe Hello
C:\>autofil.exe Hello.  ( When I enter a period, it should autofil Hello after the period)
C:\>autofil.exe Hello.World  *World is autofilled when period was entered.

2 番目の要件は、私が

C:\>autofil.exe Hello.World  (And when i press Tab key, `World` should print with other suggestions, as `Friend`, and if I press Tab again, print `Matt`, and scroll so on when tab is pressed... )

まあ、それは私の要件です。テキストを自動入力するためのタブ補完。また、STDIN から Tab キーを読み取る方法を知りたいです。

ありがとう!

4

1 に答える 1

1

Readline GNU library For Windowsを使用できます。これは非常に使いやすく、逆にPDcurses / Ncurses (ほとんど同じです) を使用して手動で実行します (コンソールの動作などを処理します)。

readline を使用する場合、オートコンプリートを完了するのは次のように簡単です。

rl_bind_key('\t', rl_complete);
char *input = readline("C:\>");

Ncurses/PDcurses を使用する場合は、もう少し作業を行う必要があります :)

  • まず、実際のコンソール パラメータを保存します。
  • 次に、noecho() で入力のエコーをオフに設定します。
  • プログラムを呼び出すには、入力を処理し、引数を解析する必要があります。
  • また、現在の入力に一致するものをディレクトリ(現在およびPATH変数のもの)で検索する必要があります。

プログラムを終了する前に、保存されたコンソール パラメータを再度設定します。

Ncurses How-Toはポイントガイドへの簡単な権利です。

Posix curses の定義関数とキーの定義が含まれています。

于 2012-12-20T18:27:45.813 に答える