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

Showing progress in command-line application

本文关键字:命令行 应用程序 显示      更新时间:2023-10-16

好吧,问这么简单的事情我有点不好意思,但仍然如此。

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

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

std::cout << "10%n";
...
std::cout << "20%n";
...
std::cout << "30%n";

。但结果用户将看到:

some line printed before
10%
20%
30%
...

。但我真正需要的是更新的百分比,就像一开始这样:

some line printed before
10%
...

。更新后:

some line printed before
20%
...

。第二次更新后:

some line printed before
30%
...

我应该如何实现这一目标?

不使用'n',使用 'r'

std::cout << "r10%" << std::flush;

完成后打印换行符('n'(。

使用std::flush非常重要,因此流内容确实是输出的。

使用回车符。

std::cout << "r10%";
std::cout << "r20%";
...

转到行的开头。