3

システム クラス プロジェクト用に C 言語で CLI プログラムを開発しています。コマンド プロンプトを維持しながら、着信テキストを表示する必要があります。そのままにしておくと、入力しようとするものが何であれ、入力テキストが透けて見えます。他のアプリケーションでは、着信テキストがプロンプト自体の上 (または下) に表示されるのを見てきました。ANSIエスケープでこれを実装する方法はありますか? ncurses はやり過ぎのようです。

4

2 に答える 2

2

印刷\rしてプロンプトを消去できます。カーソルが現在の行の先頭に戻ります。その後、残りの入力文字、改行を消去し、プロンプトを再印刷するために、いくつかのスペースを続けて出力を印刷できます。

ANSIシーケンスまたは端末固有のライブラリを使用すると、さらに多くのことができますが、ASCIIのみを使用して確実に実行できるのはこれだけだと思います. もちろん、画面全体を再描画するために 242 の空白行を出力することは別として。

編集:申し訳ありませんが、ANSIの部分に適切に答えていませんでした。カーソル移動制御コードと既存の文字の上にスペースを印刷することで、ほとんど何でも行うことができ、「行の削除」などの便利なアクションがいくつかあります。ただし、Windows は XP 以降の ANSI では適切に動作しないことに注意してください。また、他のシステムでも動作が保証されていません。

于 2011-01-27T19:30:04.347 に答える
0

1 つには、印刷中にプロンプ​​トを維持したい場合は、scanf などを使用することはできません。入力を取得するには、キーボード イベントをインターセプトするか、非待機メソッドを使用する必要があります。次に、行の端末番号 (n) を取得し、出力の最後の n-1 行を出力してから、プロンプトを表示できます。

my2c

于 2011-01-27T19:37:04.107 に答える