程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 終端同一行輸出進度信息,終端輸出進度

終端同一行輸出進度信息,終端輸出進度

編輯:C++入門知識

終端同一行輸出進度信息,終端輸出進度


直接貼代碼:

1 #define MYSIZE 32*1024*1024 2 3 #include <iostream> 4 #include <iomanip> 5 #include <fstream> 6 #include <pthread.h> 7 #include <stdlib.h> 8 #include <string.h> 9 #include <time.h> 10 #include <sys/time.h> 11 12 using namespace std; 13 14 unsigned int My_buffer[MYSIZE]; 15 16 string getFileName(); 17 18 int main(int argc, char **argv) 19 { 20 //out current thread id; 21 cout<<getpid()<<endl; 22 23 struct timeval tpseed; 24 int n; 25 float process; 26 float rule; 27 28 cout<<"Data Buffer is Creating ..."; 29 //clean output buffer 30 fflush(stdout); 31 //process step 32 rule=0.01; 33 34 for(n=0;n<MYSIZE;n++) 35 { 36 //get millionseconds 37 gettimeofday(&tpseed,NULL); 38 //get rand 39 srand(tpseed.tv_usec); 40 My_buffer[n]=(unsigned int)(1+(3000.0*rand())/(RAND_MAX+1.0)); 41 42 process=n/(MYSIZE/100.0); 43 44 if(n%(MYSIZE/100)==0 || ((int)process)<10) 45 { 46 if(process>rule) 47 { 48 rule=rule+0.01; 49 //clean outside char 50 cout<<"\r "; 51 /*output avaliable char 52 *\033[32;5m set fonts properties 53 * \033[0m set fonts nomal 54 */ 55 cout<<"\r\033[32;5m Data Buffer is Creating \033[31;1m" 56 <<setprecision(2)<<process<<"%\033[32;5m ...\033[0m"; 57 //clean output buffer 58 fflush(stdout); 59 } 60 } 61 } 62 cout<<endl; 63 return 0; 64 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved