Linux进度条制作

进度条

先了解一下/r 的用法

/r

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

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

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

 1 #include
  2 #include
  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(cnt100)
 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()毫秒延迟

Original: https://www.cnblogs.com/LonelyMoNan/p/16575539.html
Author: lemon-Breeze
Title: Linux进度条制作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606774/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球