首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Console.Clear可以只清除一行而不是整个控制台吗?

Console.Clear可以只清除一行而不是整个控制台吗?
EN

Stack Overflow用户
提问于 2012-01-21 03:26:47
回答 9查看 115K关注 0票数 89

在为学校做问答程序时,我突然想到我可以用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()将不会有对这些值的引用来清除并再次输出。这就是为什么我想知道我是否可以只问一个问题,然后删除一行,只输出答案(或答案)。

我只是在尝试理解可能性,而不是试图建立一个程序。我想知道从引用和按值输出值的能力,而不需要额外的输出问题。

EN

回答 9

Stack Overflow用户

发布于 2012-12-30 01:03:55

一个更简单、更好的解决方案是:

Console.Write("\r" + new string(' ', Console.WindowWidth) + "\r");

它使用carriage return转到行的开头,然后打印与控制台宽度一样多的空格,并再次返回到行的开头,因此您可以在以后打印自己的测试。

票数 51
EN

Stack Overflow用户

发布于 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);
}
票数 16
EN

Stack Overflow用户

发布于 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);
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8946808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档