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