* ignore * C ++和C#如何在命令行中显示百分比

时间:2013-10-09 14:23:58

标签: c# c++ command-line

当我创建一个程序,其中进度显示在命令行中, 当进度增长时,如何使1行增加(或减少)?

所以你没有得到这个:

Progress: 1%
Progress: 2%
Progress: 3%
Progress: 4%
Progress: 5%
Progress: 6%

但是这个:

Progress: PROGRESS%

整个操作的单行

有人可以向我解释这是如何运作的吗?

4 个答案:

答案 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");

你应该有一个函数,在每次清除后都会用更新的值将所有文本重写到控制台。