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.颜色的品牌:

       \033      [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.代码的输出中:

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

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

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

  

  代码:

 1 #include<iostream>
 2 #include<time.h>
 3 #include<stdlib.h>
 4 #include<unistd.h>
 5 #include<stdio.h>
 6 
 7 #define RESET "\033[0m"
 8 #define BLACK "\033[30m"
 9 #define RED "\033[31m"
10 #define GREEN "\033[32m"
11 #define YELLOW "\033[33m"
12 #define BLUE "\033[34m"
13 #define MAGENTA "\033[35m"
14 #define CYAN "\033[36m"
15 #define WHITE "\033[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         //\r用于从头输入。
51         printf("[%-100s][%d%%][%c]\r",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

   

  最后实现结果:

   

  

 

posted @ 2018-03-27 20:38  shy_BIU  阅读(196)  评论(0编辑  收藏  举报