在为学校做问答程序时,我突然想到我可以用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).
引用的问题比较容易,因为值是存储和检索的。如果我只是简单地使用方法来传递值并输出值,那么main()
将不会有对这些值的引用来清除并再次输出。这就是为什么我想知道我是否可以只问一个问题,然后删除一行,只输出答案(或答案)。
我只是在尝试理解可能性,而不是试图建立一个程序。我想知道从引用和按值输出值的能力,而不需要额外的输出问题。
发布于 2012-12-30 01:03:55
一个更简单、更好的解决方案是:
Console.Write("\r" + new string(' ', Console.WindowWidth) + "\r");
它使用carriage return转到行的开头,然后打印与控制台宽度一样多的空格,并再次返回到行的开头,因此您可以在以后打印自己的测试。
发布于 2016-04-24 00:41:45
"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);
}
发布于 2013-07-26 19:29:03
这对我很有效:
static void ClearLine(){
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, Console.CursorTop - 1);
}
https://stackoverflow.com/questions/8946808
复制相似问题