显示命令行应用程序的进度

Eug*_*Loy 15 c c++

好吧,我有点不好意思问这么简单但仍然.

我有命令行实用程序应用程序,需要向用户显示进度.

我可以将进度写入cout,如下所示:

std::cout << "10%\n";
...
std::cout << "20%\n";
...
std::cout << "30%\n";
Run Code Online (Sandbox Code Playgroud)

...但结果用户会看到:

some line printed before
10%
20%
30%
...
Run Code Online (Sandbox Code Playgroud)

...但我真正需要的是百分比得到更新,如下所示:

some line printed before
10%
...
Run Code Online (Sandbox Code Playgroud)

......并在更新后:

some line printed before
20%
...
Run Code Online (Sandbox Code Playgroud)

...并在第二次更新后:

some line printed before
30%
...
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Som*_*ude 24

而不是使用'\n',使用'\r':

std::cout << "\r10%" << std::flush;
Run Code Online (Sandbox Code Playgroud)

完成后打印换行符('\n').

使用这一点非常重要,std::flush因此输出了流内容.


shk*_*der 6

使用回车.

std::cout << "\r10%";
std::cout << "\r20%";
...
Run Code Online (Sandbox Code Playgroud)

走到行的开头.