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("+----------------------------------------------------------------+");
}
posted @ 2022-09-27 10:40  ren_miruu  阅读(188)  评论(0编辑  收藏  举报