Linux下的进度条程序

C语言输出/输入函数都自带缓冲区,刷新数据的基本单位以为单位。
对比下两段代码
代码1

#include<stdio.h>
#include<unsitd.h>

int main()
{
    printf("hello world!\n");
    sleep(5);
    return 0;
}

先打印“hello world!”,然后sleep 5秒。
代码2

#include<stdio.h>
#include<unsitd.h>

int main()
{
    printf("hello world!");
    sleep(5);
    return 0;
}

sleep 5秒,然后打印“hello world!”

我要写入的设备为终端,一般情况按行刷新,并不会立即刷新,除非遇见‘\n’。

在编写程序前,我们还需要了解,回车与换行的区别。
回车换行:先回到当前行的开始,在换到新的一行的开始。
回车:只回到最开始。
换行:换到下一行。
在Linux环境中\n表示回车+换行;

#include<stdio.h>
#include<unistd.h>                         //Linux环境下usleep头文件

int main()
{
    int i=0;
    char bar[102];                          //设置进度条数组
    const char* tag="|/-\\";                //设置显示光标
    bar[0]=0;
    while(i<=100)
    {   
        printf("[%-100s][%2d%%][%c]\r",bar,i,tag[i%4]);
        fflush(stdout);                    //清理缓冲区
        bar[i]='#';
        i++;
        bar[i]=0;
        usleep(100000);                    //时间可以设置,毫秒单位
    }   
    printf("\n");
    return 0;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值