zoukankan      html  css  js  c++  java
  • Linux下vim上编辑实现进度条

    1.效果展示:

    进度条,先来看一个效果:


    这是进度结果,模拟实现了进度条的前进、百分比的现实、以及稍微的动画特效。

    2.原理描述:

    因为Linux系统下的输出有缓存,如果及时刷新显示,就可以得到我们想看到的效果,这里必须调用:

    fflush(stdout);
    解释一下,fflush(stdout),是对标准输出流的清理,作用是立即清除输出缓存区的东西,并输出,有关于fflush(stdout),请移驾另一篇博客:

    地址:http://blog.csdn.net/li_ning_/article/details/51594340

    其实原理就是很简单,先看看代码:

    3.代码:

    #include<stdio.h>
    #include<string.h>
    
    void porc()
    {
        int rate = 0;
        char bar[102];                 //进度条长度
        memset(bar,'',sizeof(bar)); 
        const  char* lable = "|/-\";  //动画特效
        printf("加载中,请稍后...
    ");
        while(rate <= 100)
        {
    		bar[rate] = '=';
    		printf("[%-101s][%d%%][%c]
    ",bar,rate,lable[rate%4]);
    		fflush(stdout);            //强制刷新
    		rate++;
    		usleep(100000);            //间隔时间
        }
        printf("
    ");
        printf("加载完成...
    ");
    }
    
    int main()
    {
        porc();
        return 0;
    }
    
    A:数组在进度条的整个过程中,有一个缓存的作用,和进度区间的展示;

    B:在printf()后使用fflush(stdout)的作用是立刻将要输出的内容输出。 当使用printf()函数后,系统将内容存入输出缓冲区,等到时间片轮转到系统的输出程序时,将其输出。 

    使用fflush(out)后,立刻清空输出缓冲区,并把缓冲区内容输出,每一个循环,‘=’比前一个循环多一个,第二次的输出都去覆盖第一个的输出,如此才展示进度的动态效果:

    4.Linux下程序展示:


    赐教!

  • 相关阅读:
    tornado web 框架的认识
    JavaScript 作用域知识点梳理
    服务器
    git——学习
    webservice——和API接口
    celery——任务调度模块
    supervisor——进程管理工具
    Python常用的语句
    数据类型比较总结
    字符集和字符编码问题
  • 原文地址:https://www.cnblogs.com/melons/p/5791825.html
Copyright © 2011-2022 走看看