在为学校制定问题/答案计划时,我想到我可以Console.Clear()用来擦除屏幕上的所有内容.我想知道我是否可以使用Console.Readline(valueOne),然后只输出答案而没有问题.如果我只问了一个问题,那就是Console.Clear作品.
我有几个问题,值不是参考,如果可能擦除.我想省略问题,只显示几个答案.我想,如果我储存的答案,我可以使用Console.Clear(),然后只Console.WriteLine()用三个变量.我可以这样做:
Console.WriteLine("Value 1 is: {0:c}" + "Value 2 is: {1:c}" + "Value 3 is: {2:c}, valueOne, valueTwo, valueThree).
Run Code Online (Sandbox Code Playgroud)
引用问题更容易,因为存储和检索值.如果我只是使用方法来传递值并输出值,main()则不会引用这些值来清除并再次输出.这就是为什么我想知道我是否可以问一个问题,然后删除该行并仅输出答案(或答案).
我只是想了解可能性而不是尝试设置程序.我想知道从引用和值输出值的能力,没有额外的输出问题.
dkn*_*ack 123
您可以使用该Console.SetCursorPosition功能转到特定的行号.比您可以使用此功能清除该行
public static void ClearCurrentConsoleLine()
{
int currentLineCursor = Console.CursorTop;
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, currentLineCursor);
}
Run Code Online (Sandbox Code Playgroud)
Console.WriteLine("Test");
Console.SetCursorPosition(0, Console.CursorTop - 1);
ClearCurrentConsoleLine();
Run Code Online (Sandbox Code Playgroud)
hel*_*low 38
一个更简单,更好的解决方案是:
Console.Write("\r" + new string(' ', Console.WindowWidth) + "\r");
Run Code Online (Sandbox Code Playgroud)
它使用回车符到行的开头,然后打印出与控制台宽度一样多的空格并再次返回到行的开头,这样您就可以打印自己的测试了.
Use*_*789 10
"ClearCurrentConsoleLine","ClearLine"以及上述其余功能应使用Console.BufferWidth而不是Console.WindowWidth(您可以看到为什么当您尝试使窗口变小时).控制台的窗口大小当前取决于其缓冲区,并且不能比它宽.示例(感谢Dan Cornilescu):
public static void ClearLastLine()
{
Console.SetCursorPosition(0, Console.CursorTop - 1);
Console.Write(new string(' ', Console.BufferWidth));
Console.SetCursorPosition(0, Console.CursorTop - 1);
}
Run Code Online (Sandbox Code Playgroud)
这对我有用:
static void ClearLine(){
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, Console.CursorTop - 1);
}
Run Code Online (Sandbox Code Playgroud)
我的首选方法是使用 PadRight。这不是先清除行,而是在显示新文本后清除行的其余部分,从而节省了一个步骤:
Console.CursorTop = 0;
Console.CursorLeft = 0;
Console.Write("Whatever...".PadRight(Console.BufferWidth));
Run Code Online (Sandbox Code Playgroud)