• Vim引申以及Linux下彩色进度条实现


    每个在linux环境下编程过的人一定都用过vim,那你知道vim是什么的增强版吗?

    1.其他的编辑器:

      linux下,vim是最常用也是最强大的文本编辑器。

      除此之外,还有比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano,ed,ex

      vi和vim是我们在Linux中最常用的编辑器。

      参考:https://blog.csdn.net/qq_15282027/article/details/50865920

    2.其他的编译器:

      每个程序员不出意外都是从c语言开始,那么一定也都知道gcc编译器。

      那么除了gcc编译器以外,还有什么厉害的编译器?

      还有g++、ICC、Clang、MSVC、BCC等C/C++编译器。

      其中常用的为g++,Clang,MSVC,ICC。他们各有各的特点。

      参考:https://www.zhihu.com/question/23789676

     

    3.功能强大而又麻烦得调试器gdb:

      我们在编译一段代码的时候,可以给其加上 -g 的选项。

      目的是可以用gdb来调试生成的可执行程序。

      r-运行程序。

      l - 显示行号或者函数,一次十行

      n - 单条执行

      s -  进入函数调用

      b+行号 - 设置断点

      into break - 查看断点信息

      finish - 执行到当前函数返回,然后等待命令。

      whatis - 看类型....

    4.自拟一个进度条程序,并且设置自撰一个Makefile。

      首先我们需要知道:

      1.颜色的品牌:

           33      [00;  1;        33m           xxxx

    分别对应:  开始    亮度   背景色      字体色        字符串

      其中,亮度色中01为高亮,00为低亮度。

      背景色中:40:黑,41:红:42:绿,43:黄,44:青,45:蓝,47:白。

      字体色中:30:黑,31:红,32:绿,33:黄,34:蓝,35:紫,36:青,37:白。

      参考:https://blog.csdn.net/c2682736/article/details/34438763

      

      2.代码的输出中:

      因为在一次循环输出中没有 ‘ ’ ,所以需要用 fflush()  函数来刷新缓冲区。

      ps:其中 stdout 为标准输出文件。

      并且每次输出结束都要用 ‘ ’ 来回到本行开头。

      

      代码:

     1 #include<iostream>
     2 #include<time.h>
     3 #include<stdlib.h>
     4 #include<unistd.h>
     5 #include<stdio.h>
     6 
     7 #define RESET "33[0m"
     8 #define BLACK "33[30m"
     9 #define RED "33[31m"
    10 #define GREEN "33[32m"
    11 #define YELLOW "33[33m"
    12 #define BLUE "33[34m"
    13 #define MAGENTA "33[35m"
    14 #define CYAN "33[36m"
    15 #define WHITE "33[37m"
    16 
    17 using namespace std;
    18 
    19 int main()
    20 {
    21     char buf[101]={};
    22 
    23     int i=0;
    24     char ptr[5]="/|\-";
    25 
    26     srand((int)time(0));    
    27 
    28     for(i = 0; i<100;i++)
    29     {
    30         buf[i]='#';
    31 
    32         //调整颜色。
    33         switch(i%4)
    34         {
    35             case 0:
    36                 cout<<RED;
    37                 break;
    38             case 1:
    39                 cout<<YELLOW;
    40                 break;
    41             case 2:
    42                 cout<<MAGENTA;
    43                 break;
    44             case 3:
    45                 cout<<BLUE;
    46                 break;
    47             defalut:
    48                 break;
    49         }
    50         //
    用于从头输入。
    51         printf("[%-100s][%d%%][%c]
    ",buf,i+1,ptr[i%4]);
    52 
    53         fflush(stdout);
    54         usleep(300000);
    55     }
    56     cout<<WHITE<<endl;    
    57     return 0;
    58 }

      Makefile:

    1 processbar:processbar.cpp
    2     g++ -o $@ $^ 
    3 
    4 .PHONY:clean
    5 
    6 clean:
    7     rm -f prrcessbar

       

      最后实现结果:

       

      

  • 相关阅读:
    Backbone Events 源码笔记
    IIS8集成模式下打开静态资源被aspx处理程序处理,StaticFileModule失效问题分析
    Orchard 与 ABP架构比较 (aspnetboilerplate)
    Orchard EventBus 事件总线及 IEventHandler作用
    Orchard 事件通知小坑
    推荐一个国内编程语言排名网站
    po_文件格式[转]
    关于poedit打开po文件乱码的问题
    JAVA和.NET工作流相关项目收集
    php里的二进制安全
  • 原文地址:https://www.cnblogs.com/shy0322/p/8659299.html
Copyright © 2020-2023  润新知