zoukankan      html  css  js  c++  java
  • 详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.

    彩色进度条的实现与makefile编译:

    • 创建一个process文件,在里面编写实现进度条的代码 

           1.在编写代码的时候我们首先要区分两个转义字符:   

           :表示换行,换到下一行,并位于起始位置,并不会覆盖原来的内容。

           :表示回车,回到这一行的起始位置,相当于覆盖了之前的内容,不会重启一行。

        2.其次了解linux下的 usleep() 函数:

          功能:把调用该函数的线程挂起一段时间 , 单位是微秒(即百万分之一秒)

          头文件:unistd.h

          语法: void usleep(int micro_seconds);

        3.函数fflush():

          作用:刷新缓冲区——>fflush(stdout);

        4.以下是进度条的代码实现:

          

       这里提一下:如果不加 fflush() 函数,则会在一定的时间后一起显示出来,并不会像进度条一样慢慢往前增长。

    • 创建一个makefile文件,通过makefile来执行代码

        

        1.左边为目标文件,右边是依赖文件

        2.第二行开始先使用 tab 键空开(规定),然后在写入命令

    • 检验进度条的实现

        

     

    • 修改进度条的代码,使进度条成为一个彩色进度条 

    Linux下printf函数显示不同的颜色
    颜色:
    #define NONE "33[0m"
    #define RED "33[0;32;31m"
    #define LIGHT_RED "33[1;31m"
    #define GREEN "33[0;32;32m"
    #define LIGHT_GREEN "33[1;32m"
    #define BLUE "33[0;32;34m"
    #define LIGHT_BLUE "33[1;34m"
    #define DARY_GRAY "33[1;30m"
    #define CYAN "33[0;36m"
    #define LIGHT_CYAN "33[1;36m"
    #define PURPLE "33[0;35m"
    #define LIGHT_PURPLE "33[1;35m"
    #define BROWN "33[0;33m"
    #define YELLOW "33[1;33m"
    #define LIGHT_GRAY "33[0;37m"
    #define WHITE "33[1;37m"


    比如:
      printf("33[31m ####----->> 33[32m" "hello " "33[m");
      颜色分为背景色和字体色,30~39用来设置字体色,40~49设置背景:


    背景色    字体色
    40: 黑    30: 黑
    41: 红    31: 红
    42: 绿    32: 绿
    43: 黄    33: 黄
    44: 蓝    34: 蓝
    45: 紫    35: 紫
    46: 深绿   36: 深绿
    47: 白色   37: 白色
    记得在打印完之后,把颜色恢复成NONE,不然再后面的打印都会跟着变色。

    另外,还可以加一些ANSI控制码。加颜色只是以下控制码中的一种:

    33[0m 关闭所有属性
    33[1m 设置高亮度
    33[4m 下划线
    33[5m 闪烁
    33[7m 反显
    33[8m 消隐
    33[30m -- 33[37m 设置前景色
    33[40m -- 33[47m 设置背景色
    33[nA 光标上移n行
    33[nB 光标下移n行
    33[nC 光标右移n行
    33[nD 光标左移n行
    33[y;xH设置光标位置
    33[2J 清屏
    33[K 清除从光标到行尾的内容
    33[s 保存光标位置
    33[u 恢复光标位置
    33[?25l 隐藏光标
    33[?25h 显示光标
      printf( CYAN "current function is %s " GREEN " file line is %d " NONE, __FUNCTION__, __LINE__ );
      fprintf(stderr, RED "current function is %s " BLUE " file line is %d " NONE, __FUNCTION__, __LINE__ );
      return 0;

        代码实现:

     

        

  • 相关阅读:
    Angular实现数据绑定,它实现原理是什么?
    用angular实时获取本地localStorage数据,实现一个模拟后台数据登入的效果
    巨坑
    Hack 语言学习/参考---1.3 Summary
    Hack 语言学习/参考---1.2 Hack Background
    Hack 语言学习/参考---1.1 What is Hack?
    Hack 语言学习/参考---1.Hack 语言
    HHVM Installation and Configuration(HHVM 安装及配置)
    What is HHVM?
    Facebook HHVM 和 Hack 手册 --- 2. HHVM能做什么
  • 原文地址:https://www.cnblogs.com/cuckoo-/p/10741562.html
Copyright © 2011-2022 走看看