Linux动态旋转进度条

线上有相关的讲解,这里就不赘述了。直接上代码:

#include 
#include 
#include 

char *STR = "/|\\";

void Progress_Bar()
{
    int i = 0;
    char prob[102];
    memset(prob, '\0', sizeof(prob));

    while (i <= 100)
    {
        printf("[%-100s] [%d%%]\r", prob, i);
        fflush(stdout); 
        if (i != 99)
        {
            prob[i + 1] = STR[i % 3];
        }
        prob[i] = '=';
        usleep(100000); 
        i++;
    }
    printf("\n");
}

int main()
{
    Progress_Bar();
    
    return 0;
}

请添加图片描述
此处需要注意:
由于windows和linux对printf定义操作的区别,因此会导致在windows环境下会多行输出,因为windows下的printf不是行缓冲。因此无论是否有换行,是否程序结束,是否缓冲区满,是否有刷新动作,都是会直接输出的。

你可能感兴趣的:(笔记,linux)