Ada*_*dam 6 c++ windows cout console-application progress-bar
所以我有一个函数(或者更确切地说,我稍后将其转换为函数)以在控制台窗口中进行随机%进度; 像这样:
#include <iostream>
#include <time.h>
#include <cmath>
#include <windows.h>
using namespace std;
int main()
{
srand(time(0));
int x = 0;
for(int i = 0; i<100; i++){
int r = rand() % 1000;
x++;
cout << "\r" << x << "% completed." << flush;
if(i < 43){
Sleep(r/6);
}else if(i > 43 && i < 74){
Sleep(r/8);
}else if(i < 98){
Sleep(r/5);
}else if(i > 97 && i != 99){
Sleep(2000);
}
}
cout << endl << endl << "Operation completed successfully.\n" << flush;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是,我希望输出如下:
1% completed
|
Run Code Online (Sandbox Code Playgroud)
(后来...)
25% completed
|||||||||||||||||||||||||
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
提前致谢!
mas*_*oud 14
打印字符'\r'很有用.它将光标放在行的开头.
由于您无法再访问上一行,您可以使用以下内容:
25% completed: ||||||||||||||||||
Run Code Online (Sandbox Code Playgroud)
每次迭代后:
int X;
...
std::cout << "\r" << percent << "% completed: ";
std::cout << std::string(X, '|');
std::cout.flush();
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用:基于便携式文本的控制台操纵器
| 归档时间: |
|
| 查看次数: |
15064 次 |
| 最近记录: |