C语言控制台程序实时刷新进度条
在循环中调用,会刷新掉之前的输出。
/*
* NEED:
* <stdio.h>
* <stdlib.h>
* INPUT:
* title: 进度条名
* rat: 当前进度(0.0 - 1.0)
*/
void progress_bar(const char* title, double rat)
{
system("cls");
if (rat > 1.0)
rat = 1.0;
else if (rat < 0.0)
rat = 0.0;
unsigned char bar = rat*64;
printf("%s\n", title);
puts("+----------------------------------------------------------------+");
printf("|");
int i = 0;
for(; i < bar; i++)
printf(">");
for(; i < 64; i++)
printf(" ");
printf("|");
printf(" %.2f %%\n", rat*100);
puts("+----------------------------------------------------------------+");
}