c++ - Making a console progress bar? (Windows) -


so have function (or rather, i'll turn function later) make random % progress in console window; this:

#include <iostream> #include <time.h> #include <cmath> #include <windows.h>  using namespace std;  int main() {     srand(time(0));     int x = 0;      for(int = 0; i<100; i++){         int r = rand() % 1000;         x++;         cout << "\r" << x << "% completed." << flush;         if(i < 43){            sleep(r/6);         }else if(i > 43 && < 74){            sleep(r/8);         }else if(i < 98){            sleep(r/5);         }else if(i > 97 && != 99){            sleep(2000);         }     }      cout << endl << endl << "operation completed successfully.\n" << flush;     return 0; } 

the thing is, want output this:

1% completed  | 

(later...)

25% completed  ||||||||||||||||||||||||| 

how can that?

thanks in advance!

printing character '\r' useful. puts cursor @ beginning of line.

since can not access previous line anymore, can have this:

25% completed: |||||||||||||||||| 

after each iteration:

int x;  ...  std::cout << "\r" << percent << "% completed: ";  std::cout << std::string(x, '|');  std::cout.flush(); 

also, can use: portable text based console manipulator


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -