java - 用控制台字符删除多条控制台行

标签 java python ascii console-application control-characters

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

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

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

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

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

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

最佳答案

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

请注意,控制台输出单元的仿真级别非常有限。通常,您可以期望 Ctrl-H 退格,Ctrl-M 将光标返回到行首。超出此范围的任何内容都会设置额外的要求。

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

然后您可以自己生成转义序列 - 这对于简单的需求来说相对容易 - 或者委托(delegate)给 curses/ncurses 库来实现您的需要。

关于java - 用控制台字符删除多条控制台行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24740409/

相关文章:

java - 覆盖 Struts 应用程序中的默认 ResourceBundle

python - 如何在 python 中将两个变量与一个字符串进行比较?

python - 识别 Pandas 数据框中组中重复项的更好方法?

java - 为许多不同的配置文件集测试一个 Spring 测试类

java - javax StreamSource 的目的是什么

java - Java XML DOM : how are id Attributes special?

c - keybd_event 不适用于括号和其他一些字符

python - pyshark无法在windows 7上抓包(python)

python - 如何通过 pySerial 从 Python 发送 int 或 string 并在 C 中转为 int 或 String

c# - 抽象如何检查解密尝试是否成功