在Windows的控制台和Linux的终端中显示加载进度

时间:2023-12-28 10:04:14

Windows中

 #include <stdio.h>
#include <windows.h> int main()
{
const int NUM = ;//任务完成总量
int i;
for (i = ; i < NUM; i++)
{
//用Sleep()来代替一些费时的操作,如读写文件,大量的运算。
Sleep(); //some work to do
//输出百分比
printf("%.2lf%%\r", i * 100.0/ NUM);
}
system("pause");
return ;
}

由于linux中\r与windows中的\r的作用不同,使得此程序在linux下无法得到想要的过程结果

Linux中

#include<stdio.h>
#include<unistd.h> int main()
{
const int NUM=;//任务总量
int i; for(i=;i<NUM;i++)
{
printf("%.2lf%%",i*100.0/NUM);
sleep();//以秒为单位
fflush(stdout);//刷新输出缓冲区,将缓冲区的内容打印到标准输出设备
printf("\r");//
}
}