Linux进度条制作

进度条


先了解一下/r 的用法

/r 

讲光标回到当前行的最开始

复制代码
4 int main()
  5 {
  6   int i=0;
  7   for(i=0;i<=10;i++)
  8   {
  9   printf("%d\r",i);
 10   fflush(stdout);
 11   sleep(1);
 12   }
 13 
 14   return 0;
 15 }   
复制代码

这段代码 即可做出简易版倒计时

 

复制代码
 1 #include<stdio.h>
  2 #include<unistd.h>
  3 #include<string.h>
  4 
  5 #define MAX 101
  6 #define sle '#'
  7 
  8 void progress()
  9 {
 10    char buf[MAX];
 11    memset(buf,'\0',sizeof(buf));//讲字符串每个字符设置为\0
 12 
 13    const char* lar="|-/\\";
 14 
 15    int cnt=0;
 16    while(cnt<=100)
 17    {
 18      printf("加载中:[%-100s][%d%%][%c]\r",buf,cnt,lar[cnt%4]);//-100 是提前开好-100格的空间,%4是因为lar只有4个字符 
 19      fflush(stdout);//刷新 不让数据在缓冲区内
 20      buf[cnt++]=sle;//添加字符
 21      usleep(20000);//延迟                                                                                                                                                                               
 22    }
 23    printf("\n");
 24 }
 25 int main()
 26 {
 27   progress();
 28 
 29   return 0;
 30 }
复制代码

实际上只用到了 /r:回到当前行的最开始 fflush(stdout)刷新 usleep()毫秒延迟

 

posted @   lemon-Breeze  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示