好吧,我有点不好意思问这么简单但仍然.
我有命令行实用程序应用程序,需要向用户显示进度.
我可以将进度写入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因此输出了流内容.
使用回车.
std::cout << "\r10%";
std::cout << "\r20%";
...
Run Code Online (Sandbox Code Playgroud)
走到行的开头.