当前位置:   article > 正文

linux—进度条彩色版简单实现_fflush() 颜色

fflush() 颜色

一、缓冲区理解:
1.无缓冲:将所得到的信息马上显示出来。
2.行缓冲:输入输出遇到换行才执行的I/O操作,比如键盘操作。
3.全缓冲:输入输出写满缓冲区蔡执行I/O操作。比如磁盘读写。
当我们在实现的时候需要使用fflush(stdout)来刷新缓冲区,以便下一次的输出。
二、fflush的理解:
1.对于输出流,fflush()强制写入给定输出或更新的所有用户空间缓冲数据。
2.对于输入流,fflush()丢弃任何缓冲数据。
这是从底层文件中获取的,但还没有被应用程序消耗掉。流的开放状态不受影响。
三、’\r’和’\n’的区别:
回车用’\r’表示,表示是回到改行的初始位置,换行用’\n’表示,表示直接换到下一行,所以我们需要用’\r’,以此达到进度条的效果。
四、颜色设定及扩展:
1.颜色设定:

    #define NONE  "\e[0m"                                                                                           
    #define RED   "\e[0;31m"                                                                                        
    #define BLUE  "\e[0;34m"                                                                                        
    #define GREEN "\e[0;32m"    
  • 1
  • 2
  • 3
  • 4

2.扩展:

编号含义
40黑色
41深红色
42绿色
43黄色
44蓝色
45紫色
46深绿色
47白色
控制码作用
\033[0m关闭所有属性
\033[1m设置高亮度
\033[4m下划线
\033[5m闪烁
\033[7m反显
\033[8m消隐
\033[30m– \033[37m设置前景色
\033[40m– \033[47m设置背景色
\033[nA光标上移n行
\033[nB光标下移n行
\033[nC光标右移n行
\033[nD光标左移n行
\033[y;H设置光标位置
\033[2J清屏
\033[K清除从光标到行尾的内容
\033[s保存光标位置
\033[u恢复光标位置

五、sleep和usleep简单介绍:
1,sleep:以秒为单位暂停读秒;
2.usleep:以毫秒为单位暂停读秒;
六、代码实现:

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

#define NONE  "\e[0m"
#define RED   "\e[0;31m"
#define GREEN "\e[0;32m"
#define BLUE  "\e[0;34m"

int main()
{
    int index = 0;
    char str[21];
    memset(str,'\0',sizeof(str));
    char tmp[5] = {'-','\\','|','/','\0'};
    while(index <=20)
    {   
        str[index] = '#';
        if(index <=14)
            printf(RED"%s[%d%%%c]\r"NONE,str,index*5,tmp[index%4]);
        elseif(index<=14)
            printf(BLUE"%s[%d%%%c]\r"NONE,str,index*5,tmp[index%4]);
        else
            printf(GREEN"%s[%d%%%c]\r"NONE,str,index*5,tmp[index%4]);
        fflush(stdout);
        index++;
        usleep(100000);
    }   
    printf("\n");
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

七、效果展示:
https://img-blog.csdn.net/20180924123120989?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0MxMDI5MzIzMjM2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/334839
推荐阅读
相关标签
  

闽ICP备14008679号