Linux----进度条(彩色)

简单进度条的实现

#include<stdio.h>
#include<unistd.h>
#include<string.h>

int main()
{
   int k=0;
   char bar[102];
   memset(bar,0,sizeof(bar));
    const char* str="|-/\\";
   for(;k<=100;++k)
    {
       printf("[%-100s] (%d%%) [%c]\r",bar,k,str[k%4                
        ]);
        fflush(stdout);
        bar[k]='*';
        sleep(1);
     }
     printf("\n");
     return 0;
 }

注解:
1.[%-100s]:表示每次从左边开始打印100个字符,长度不够的时候用空格补齐;
如果是[%+100s]:表示每次从右边开始打印100个字符,长度不够的时候用空格补齐。
2.’\r’:表示每次打印的时候光标在同一行的开头;
‘\n’:每次打印将光标放在下一行,并不一定是开头;
‘\r\n’:每次打印将光标放在下一行的开头。
3.使用fflush函数将每次打印的数据刷新到标准输出,方便观察使用sleep函数进行等待。

彩色进度条的实现
终端的字符颜色由转义序列控制,是文本模式下的系统显示功能,与具体语言无关。转义序列以控制字符’ESC’开头。多数转义序列超过两个字符,故通常以’ESC’和左括号’[‘开头。该起始序列称为控制序列引导符,由’\033[‘或’\e[‘代替。

代码实现:

#include<stdio.h>
#include<unistd.h>
#include<string.h>

int main()
{
    int k=0;
     int j=0;
     int color[]={4,3,2,5,6};
     char bar[102];
     memset(bar,0,sizeof(bar));
     const char* str="|/-\\";
      for(;k<=100;++k)
     {
         printf("\033[3%dm[%-100s]\033[0m\033[33m[%d%%]\033[0m[%c]\r",                  
             color[j], bar, k, str[k % 4]);
        fflush(stdout);
        bar[k]='*';
        //每20%变色一次
        if(k%20==0)
        {
            ++j;
        }
        usleep(7000);
     }
     printf("\n");
     return 0;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 `uni-file-picker` 组件来实现文件选择器,并结合进度条来显示上传进度。首先,你需要在项目中引入 `uni-file-picker` 组件,并根据需要配置相关参数。 下面是一个示例代码,展示了如何使用 `uni-file-picker` 和进度条: ```html <template> <view> <!-- 文件选择器 --> <uni-file-picker :count="1" @success="onFileSuccess" ></uni-file-picker> <!-- 进度条 --> <uni-progress v-if="showProgress" :percent="uploadProgress" ></uni-progress> </view> </template> <script> export default { data() { return { showProgress: false, // 是否显示进度条 uploadProgress: 0, // 上传进度(百分比) }; }, methods: { onFileSuccess(res) { // 文件选择成功后触发的回调函数 const file = res.tempFiles[0]; // 显示进度条 this.showProgress = true; // 模拟上传过程,每隔一段时间更新进度 const interval = setInterval(() => { if (this.uploadProgress < 100) { this.uploadProgress += 10; } else { // 上传完成,隐藏进度条 this.showProgress = false; clearInterval(interval); } }, 1000); }, }, }; </script> ``` 在上述示例中,当用户选择文件后,`uni-file-picker` 组件的 `success` 事件会被触发,然后你可以在 `onFileSuccess` 方法中处理文件上传的逻辑。这里使用了一个定时器来模拟上传过程,每隔一段时间更新进度条的值。注意:在实际使用中,你需要根据你的具体上传方式和逻辑来更新进度条的值。 希望以上示例对你有帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值