繁体   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