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