天天看点

C语言控制台实现进度条

C语言控制台实现进度条
#include <windows.h>
#include <stdio.h>

static const char *ponit[]= {"\x20\x20", "\xA8\x87", "\xA8\x86", "\xA8\x84", "\xA8\x83", "\xA8\x80"}; //  ▏▎▍▊█

//int per 百分比范围(0 ~ 100)

void progress_bar(int per)
{
    int i=0;
    int num0=0;

    printf("\r  [");
    num0  = (100-per)/5;
    i = per;
    while(i>5)
    {
        printf("%s", ponit[5]);
        i -= 5;
    }
    if(i)
    {
        printf("%s", ponit[i]);
    }
    for(i=0; i<num0; i++)
    {
        printf("%s", ponit[0]);
    }
    printf("] %2d%%", per);
    if(per == 100)
    {
        printf("\n");
    }
}

void process_bar_test(void)
{
    int i = 0;

    for(i=0; i<=100; i++)
    {
        progress_bar(i);
        Sleep(100);
    }

//	set_console_color(COLOR_GREEN);
}

int main(int argc, char *argv[])
{
    process_bar_test();

    system("pause");
}

           

继续阅读