3

所以我知道,使用控制台字符,您可以将光标返回到当前行的开头 ( \r) 或者只是一个字符 ( \b) 进行覆盖。我想知道的是我用控制字符覆盖了多行。

我有一个点网格,打印到控制台:

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

然后回到第一个字符并重新绘制它

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

不确定这将使用哪种语言,这就是为什么我更喜欢使用字符的解决方案。

4

1 回答 1

0

(以下所有内容仅适用于您自己不在 Swing JPanel 或类似工具中呈现输出的情况)

请注意,您可以从控制台输出单元获得的仿真级别非常有限。通常,您可以期望 Ctrl-H 退格,而 Ctrl-M 将光标返回到行首。除此之外的任何东西都会提出额外的要求。

从历史上看,这是通过发送 ANSI 转义序列(物理 VT100 终端的近亲)来完成的,然后将其解释为移动光标、清除显示器的某些部分并切换颜色。您将需要类似的东西在输出设备中执行此操作。对于 Windows 中的 CMD.EXE,请参阅如何使 win32 控制台识别 ANSI/VT100 转义序列?的建议。Linux 和 OS X 终端仿真器支持这一点。

然后,您可以自己生成转义序列——这对于简单的需求来说相对容易——或者委托给一个 curses/ncurses 库来实现你所需要的。

于 2014-07-14T16:03:22.603 回答