【Linux】 简易小程序-进度条

在Linux中,进度条是一种展示任务处理状态的可视化工具,通常以长方形条形显示完成度和剩余时间。实现进度条关键点包括理解缓冲区类型如无缓冲、行缓冲和全缓冲,掌握fflush函数用于清除或刷新缓冲区,利用%100s进行左对齐填充,使用memset设置内存,以及掌握换行与回车的区别和usat函数控制进程挂起。通过这些技巧,可以创建出动态的进度条效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进度条即计算机在处理任务时以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。
理解:
要实现进度条,就要在缓冲区里,所以,我们需要注意几点:
1.缓冲区:分为 无缓冲,行缓冲,全缓冲
无缓冲,是指没有缓冲,可以将信息立马显示出来。具体代表是标准错误流stderr
行缓冲,是输入输出遇到换行才执行的操作。具体代表是键盘的操作
全缓冲,是输入输出写满缓冲区才执行I/O操作。具体代表是磁盘的读写
2.fflush函数:清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区的东西清除。
fflush(stdout):刷新标准输出缓冲区,把输出缓冲区里的打印到标准输出设备上
3.为了让打印进度条时,两边的框固定,预留100个字节,所以写为%100s,左对齐,加“ -”
4.memset函数:它的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去
5.换行和回车:换行是指 光标换到下一行,用\n;回车是指回车到当前行最开始,用\r。进度条在一行,所以用\r
6.usleep函数:能把进程挂起一段时间,单位是 微秒。在这里使用它,可以很明显看到变化。
7.%%输出%

 #include<stdio.h>
 #include<string.h>
 #include<unistd.h>
 int main()
 {        
       int i=0;
      char bar[102];
      memset(bar,'\0',sizeof(bar));
      const char *lable="|/-\\";//添加一个标签,按顺时针输出
      for(;i<=100;i++)
      {    
          bar[i]='*';
          printf("[%-100s][%d%%][%c]\r",bar,i,lable[i%4]);  //  - 左对齐, %%输出%                                                                                                                        
          fflush(stdout);//输出缓冲区
          usleep(100000);//挂起一段时间
      }    
      printf("\n");
 } 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值