清除控制台中的一行

时间:2013-03-14 22:35:57

标签: c# line console-application clear

如何在C#中清除控制台中的一行?

我知道如何将光标放在一行的开头:

Console.SetCursorPosition(0, Console.CursorTop);

4 个答案:

答案 0 :(得分:11)

最简单的方法就是像你一样移动到行的开头,然后写出一串与行长度相同的空格。

Console.Write(new String(' ', Console.BufferWidth));

答案 1 :(得分:2)

使用控制台缓冲区行的最后一个空格后,控制台光标会自动跳转到下一行。

  1. 在光标到达控制台边缘之前将光标重置回到开头
  2. 删除旧控制台输出,将光标放在下一行
  3. 将光标重新移回刚刚清除的行

    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);