如何在 C# 中清除控制台中的一行?
我知道如何将光标放在一行的开头:
Console.SetCursorPosition(0, Console.CursorTop);
如何在 C# 中清除控制台中的一行?
我知道如何将光标放在一行的开头:
Console.SetCursorPosition(0, Console.CursorTop);
最简单的方法是移动到行的开头,就像您所做的那样,然后写出与行长度相同的空格字符串。
Console.Write(new String(' ', Console.BufferWidth));
一旦使用了控制台缓冲区行的最后一个空格,控制台光标就会自动跳转到下一行。
将光标重置回刚刚清除的行
while (true)
{
Console.Write(".");
if (Console.CursorLeft + 1 >= Console.BufferWidth)
{
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(Enumerable.Repeat<char>(' ', Console.BufferWidth).ToArray());
Console.SetCursorPosition(0, Console.CursorTop - 1);
}
if (Console.KeyAvailable)
break;
}
(在这里结合 at.toulan 和 Andrew 的答案。)
最简单的是,覆盖最后一行:
Console.SetCursorPosition(0, Console.CursorTop - 1)
Console.WriteLine("new line of text");
如果“新文本行”比以前的文本短,请在写文本之前写下空格,就像 Andrew 说的那样。
设置好光标位置后,可以使用退格:
do { Console.Write("\b \b"); } while (Console.CursorLeft > 0);