【发布时间】:2018-11-08 15:55:10
【问题描述】:
所以我想创建一个脚本,它首先从(相当大的)二维数组中打印出值,然后通过擦除它并打印一个新字符来更改一个字符,而不清除整个控制台并重新绘制它,因为这会产生闪烁当我想经常更改时非常烦人。那么有没有办法替换或删除一个已经打印的字符或任何其他有效的方法呢?我只是不想闪烁。
【问题讨论】:
-
您想修改控制台窗口中已经显示的输出,而不创建新行?
所以我想创建一个脚本,它首先从(相当大的)二维数组中打印出值,然后通过擦除它并打印一个新字符来更改一个字符,而不清除整个控制台并重新绘制它,因为这会产生闪烁当我想经常更改时非常烦人。那么有没有办法替换或删除一个已经打印的字符或任何其他有效的方法呢?我只是不想闪烁。
【问题讨论】:
要删除控制台中输入的最后一个字符,可以使用以下命令:
Console.Write("\b");
但是,如果您尝试删除字符串中间的字符,则必须对所需字符进行一些巧妙的退格操作,然后重新打印字符串的其余部分。你可以写一个循环到退格直到你想删除的字符,将删除的字符添加到堆栈中,然后将它们弹出以重写它。
第二种方法效率很低,因为控制台命令自然很慢,而且确实滥用了控制台退格命令。
【讨论】:
Console.SetCursorPosition(int, int) 在控制台周围移动光标。您可以从那里执行其他控制台操作。看看:stackoverflow.com/questions/22089645/…
Console.SetCursorPosition(int, int),但我不能只移动光标并使用Console.Write("\b \b");,这不起作用
移动光标并写一个空格“”。 (或任何您想用作替换的字符。)
【讨论】: