【Linux学习笔记】----进度条小游戏(缓冲区刷新问题)

1.代码展示

#include 
#include
#include 
int main()
{
    int i = 0;
    char buf[101];
    memset(buf, 0 ,sizeof(buf));
    while(i <= 100 )
    {
        printf("[%-100s][%d%%]\r", buf, i);
        fflush(stdout);
        buf[i++] = '*';
       usleep(100000);
    }
    printf("\n");
    return 0;
}

2.结果展示

在这里插入图片描述

3.总结分析

1.\n换行功能,有刷新立即缓冲区的作用。
2.fflush也有立即刷新缓冲区的作用
3.当有sleep函数在输出时,如果不使用\n或者手动刷新时,
在sleep结束后才刷新缓冲区,所有就有输出的差别了;
不刷新先暂停,后输出,刷新先输出后暂停。
4.\r回车符让光标移动到初始位置。

你可能感兴趣的:(Linux操作系统)