簡體   English   中英

使用控制台字符擦除多個控制台行

[英]Erase multiple console lines with console characters

所以我知道使用控制台字符可以將光標返回到當前行的開頭( \\r ),或者只返回一個字符( \\b )進行覆蓋。 我想知道的是我用控制字符覆蓋多行。

我有一個點網格,打印到控制台:

. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

然后回到第一個字符並重新繪制它

. . . . . . . .
. . . 0 . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

不確定這將使用哪種語言,這就是為什么我更喜歡使用字符的解決方案。

(以下所有內容僅適用於您未在Swing JPanel或類似內容中自行渲染輸出的情況)

請注意,您可以從控制台輸出單元獲得的仿真級別非常有限。 通常,您可以期望Ctrl-H退格,而Ctrl-M則將光標返回到行的開頭。 除此以外的任何東西都會產生額外的要求

從歷史上看,這是通過發送ANSI轉義序列(物理VT100終端的近親)來完成的,然后將其解釋為移動光標,清除監視器的部分並切換顏色。 在輸出設備中,您將需要類似的功能。 對於Windows中的CMD.EXE,請參閱如何使win32控制台識別ANSI / VT100轉義序列? 建議。 Linux和OS X終端仿真器支持此功能。

然后,您可以自己生成轉義序列 - 這對於簡單的需求來說相對容易 - 或者委托給curses / ncurses庫,以實現您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM