在Windows的控制台和Linux的终端中显示加载进度
Windows中
1 #include <stdio.h> 2 #include <windows.h> 3 4 5 int main() 6 { 7 const int NUM = 50;//任务完成总量 8 int i; 9 for (i = 0; i < NUM; i++) 10 { 11 //用Sleep()来代替一些费时的操作,如读写文件,大量的运算。 12 Sleep(200); //some work to do 13 //输出百分比 14 printf("%.2lf%%\r", i * 100.0/ NUM); 15 } 16 system("pause"); 17 return 0; 18 }
由于linux中\r与windows中的\r的作用不同,使得此程序在linux下无法得到想要的过程结果
Linux中
#include<stdio.h> #include<unistd.h> int main() { const int NUM=50;//任务总量 int i; for(i=0;i<NUM;i++) { printf("%.2lf%%",i*100.0/NUM); sleep(1);//以秒为单位 fflush(stdout);//刷新输出缓冲区,将缓冲区的内容打印到标准输出设备 printf("\r");// } }