33

我有一个执行冗长过程的控制台应用程序。

对于每完成 1%,我将在新行上打印完成百分比。

如何让程序在控制台窗口的同一位置打印出完成百分比?

4

2 回答 2

79

打印\r以返回到行首(但不要打印换行符!)

例如:

using System;
using System.Threading;

class Test
{
    static void Main()
    {
        for (int i=0; i <= 100; i++)
        {
            Console.Write("\r{0}%", i);
            Thread.Sleep(50);
        }
    }
}
于 2009-09-04T14:00:46.670 回答
20

您可以使用:

Console.SetCursorPosition();

适当地设置位置。

像这样:

Console.Write("Hello : ");
for(int k = 0; k <= 100; k++){
    Console.SetCursorPosition(8, 0);
    Console.Write("{0}%", k);
    System.Threading.Thread.Sleep(50);
}

Console.Read();
于 2009-09-04T14:01:02.050 回答