私は端末のウィンドウに物を出力し、残りの部分ではなく、その一部だけをクリアしたい(前半や四半期など)。私はこれを行う方法がありますか?私はシステム( "クリア")を使用していたが、それはすべてをクリアする。私はncursesを使用したくないです。どんな助けもありがとうございます。C++ unixの端末画面の一部をクリアしますか?
答えて
一般的な解決方法が必要な場合は、端末に戻るか、特殊文字を使用して削除する部分を上書きして、空白で上書きして表示する必要があります。
端末では、thisポストに戻って調べることができます。キャリッジリターン(\ r)文字を使用する方法を示すいくつかの例が含まれています。
さらに、ansiエスケープシーケンスを使用して赤いテキストを取得する方法の例もあります。同じ方法で、ANSIエスケープシーケンスを使用して端末の特定の位置に書き込むことができます。hereを見てください。このリンクの「カーソル位置を強制」では、クリアしたいすべての位置に空白を書き込むことができます。
ただし、すべての端末がこれらの方法をサポートしているわけではなく、出力をファイルにストリーミングすると、それらの特殊文字が含まれることに注意してください。
あなたの端末の機能を理解していれば、単にそれらをstdoutにcoutで書き込むことができます。
どこから起動するのかわからない場合は、次のように試してみてください。プロンプトが表示されたら、man terminfo
と入力すると、端末の機能の一覧が表示されます。 tput
で試してみてください。
% tput el | od -t x1
0000000 1b 5b 4b
0000003
は「clr_eol」私の端末の問題にこれらのバイトを送信する行の末尾にクリアされます(「エル」):次に、あなたは印刷する必要があるコードのようなものであるかを把握。ターミナルでカーソルをどのように動かすか、行をクリアする方法を理解したら、完了です。
gnome-terminalを使用しているのを見て、これを実行すると、カーソルを自宅に移動し、行末まで消去し、下に移動し、行末まで消去し、下に移動して消去します行末。あなたは印刷する必要があるかを把握するには
:(COUTで)stdoutに
% (tput home ; tput el ; tput cud1 ; tput el ; tput cud1 ; tput el ; tput cud1 ; tput el ; tput cud1 ; tput el) | od -t x1
0000000 1b 5b 48 1b 5b 4b 0a 1b 5b 4b 0a 1b 5b 4b 0a 1b
0000020 5b 4b 0a 1b 5b 4b
0000026
をそれらのバイト(1B 5B 48など)を送信するには、C++からのトリックを行います。
ncursesを使用すると移植性が向上します。使用したくない場合は、最終的に再実装することができます。
カーソルから上へ、上/下から画面の上/下へそれぞれクリアするVT100エスケープシーケンスが2つあります。
- 1. SWT内蔵のUnix端末
- 2. 画面の一部のみをクリアするには?
- 3. 端末の画面を再描画する
- 4. キャンバスの画面の一部
- 5. 分割画面Emacsを切り替えるには、一方の画面がエディタで、もう一方の画面が端末エミュレータである?
- 6. golangの端末画面の中央にテキストを表示
- 7. C言語の画面をクリア
- 8. Android搭載端末のプリント画面を撮っていますか?
- 9. 画面と携帯端末のiframeの幅
- 10. Android搭載端末に正方形の画面がありますか?
- 11. 画面サイズがGL_MAX_TEXTURE_SIZE以上のAndroid搭載端末はありますか?
- 12. 他のスレッドからプログラムでAndroid搭載端末の画面をオフにする
- 13. 一部のTCPステートが端末に表示されない
- 14. Android GCM一部の端末が登録されていない
- 15. 端末上に独自のディレクトリを持つ最初の複数画面
- 16. プロットの一部を再描画してクリアする
- 17. Mac端末でR端末コマンドを使用できますか?
- 18. Clion Debuggingの内部端末の代わりにxtermのような外部端末を使用するには?
- 19. PrintScreen、または画像の一部を画面の一部に保存できますか?
- 20. ページの一部分のhtml2canvas画面キャプチャ
- 21. どの可変端末設定がUNIXで行われますか?
- 22. VT100/xterm端末のEmacs(Mac OS Xの端末)に "C-("を送る?
- 23. 画面の一部にクリックイベントが生成されますか?
- 24. ウェブページのDOSまたは端末の画面をシミュレートする最良の方法は何ですか?
- 25. Unix端末から複数のファイルのファイルアクセス権を変更する
- 26. MySQLの画面をクリアするには?
- 27. Viewpagerは画面の端からしかスワイプできません
- 28. (n)cursesを使用して端末の右側または底面に印刷
- 29. 画面の端を探すandroid
- 30. 「ゲームオーバー」画面の「ゲーム」画面から何かをクリアする方法は?
あなたの端末は何ですか? –
ubuntuを使っているだけなので、そこに何が入っていても – Sterling
何も動かない場合は、 "\ n"を100回印刷して変更する必要はありません。 –