我可以从控制台清除特定文本吗?

本文关键字:文本 控制台 清除 我可以 | 更新日期: 2023-09-27 18:35:43

我尝试构建一个游戏,我总是清除屏幕,但这会使它滞后。那么,为了不滞后,我可以清除特定文本吗?

我可以从控制台清除特定文本吗?

如果您只想删除最后一个字符,则只需使用 ''b 字符console backspace

Console.Write("'b");

如果只想清除一个字符,可以使用Console.SetCursorPosition(int, int)达到该点则写空

Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
Console.WriteLine(" ");

要删除多个字符,您可以将当前Console.CursorLeft存储在变量中,并在循环中Console.SetCursorPosition(--variablename, Console.CursorTop)使用该值来删除所需的多个字符!

例如:- 如果要删除当前控制台行,则

public static void RemoveCurrentConsoleLine()
{
    int currentCursorLine = Console.CursorTop;
    Console.SetCursorPosition(0, Console.CursorTop);
    Console.Write(new string(' ', Console.WindowWidth)); 
    Console.SetCursorPosition(0, currentCursorLine);
}
Console.WriteLine("Top 1 Line");
Console.WriteLine("Top 2 Line");
Console.WriteLine("Top 3 Line");
Console.SetCursorPosition(0, Console.CursorTop - 1);
ClearCurrentConsoleLine();

然后输出将只有前 2 行。 第三行将被删除:-

Top 1 Line
Top 2 Line

欲了解更多信息,请参阅此处