当我创建一个程序,其中进度显示在命令行中, 当进度增长时,如何使1行增加(或减少)?
所以你没有得到这个:
Progress: 1%
Progress: 2%
Progress: 3%
Progress: 4%
Progress: 5%
Progress: 6%
但是这个:
Progress: PROGRESS%
整个操作的单行
有人可以向我解释这是如何运作的吗?
答案 0 :(得分:4)
一种常见的方法是编写不以新行(\n
)字符结尾的行,而是以回车符(\r
)结束,这样就可以覆盖它们。为了与大多数平台兼容,必须在这样做之后手动刷新标准输出,因为线路没有显示。
答案 1 :(得分:1)
在C#中使用Console.SetWindowPosition
在C ++(Windows,我认为)中使用SetConsoleCursorPosition。
(对于非Windows C ++使用ncurses库)。
答案 2 :(得分:0)
您尝试使用以下
Console.Write("\rProgress-{0}% ", progvalue);
答案 3 :(得分:-1)
您想要清除控制台。在C#中,您可以使用Console.Clear
执行此操作:
http://msdn.microsoft.com/en-us/library/system.console.clear.aspx
在C ++中,我认为你会做以下事情:
system("cls");
你应该有一个函数,在每次清除后都会用更新的值将所有文本重写到控制台。