热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

由Linux下的vim引申。

每个在linux环境下编程过的人一定都用过vim,那你知道vim是什么的增强版吗?1.其他的编辑器:linux下,vim是最常用也是最强大的文本编辑器。除此之外,还有比如图形模式的

每个在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
 2 #include
 3 #include
 4 #include
 5 #include
 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<endl;    
57     return 0;
58 }

 

  Makefile:

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

   

  最后实现结果:

   

  

 


推荐阅读
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 深入解析Java中的进程与线程机制
    在Java中,进程与线程是程序执行的基本单元。进程代表了程序的运行实例,包含了独立的内存空间和系统资源,如CPU时间、内存、文件和I/O接口。操作系统通过进程来管理和分配这些资源,确保每个程序能够高效、安全地运行。线程则是进程内的基本调度单位,多个线程可以共享进程的资源,从而实现高效的并发处理。本文将深入探讨Java中的进程与线程机制,分析其工作原理和应用场景。 ... [详细]
  • 如何在Linux环境中高效地创建、编译与运行C语言代码
    本文面向第一次在linux尝试写C语言程序的新人。有经验的请绕行。C语言用法不是本文介绍的关键,本文只是引入如何第一次在linux系统下编写、编译和执行一个简单的c程序。学会后请自行深入 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文介绍了C语言中指针的基础知识及其初步应用。首先,文章详细解释了如何定义变量和指针,例如通过 `int i, j, k;` 定义整型变量,以及使用 `int *pi, *pj, *pk;` 来声明指向整型数据的指针。接着,探讨了变量和指针的初始化方法,强调了正确的初始化对于避免程序错误的重要性。此外,还简要介绍了指针在数组、函数参数传递等场景中的基本应用,为初学者提供了全面的入门指导。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 在IIS环境中部署Go API应用:Golang面试指南
    这篇文章介绍了在IIS上部署Go API项目的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • 在执行 Vim/VM 命令时遇到错误提示:检测到名为
    在使用 Docker 时,通过 Vim 编辑 Dockerfile 文件时遇到了错误提示:“检测到名为 .dockerfile.swp 的交换文件”。这一问题通常是因为上次编辑该文件时意外中断,导致系统生成了临时的交换文件。为了解决这个问题,可以手动删除该交换文件或使用 Vim 的恢复功能来恢复未保存的更改。 ... [详细]
  • 在《孙鑫VC++讲座笔记第三讲》中,深入探讨了MFC应用程序的架构,并详细解析了SDI程序的流程图。AfxWinMain()函数位于WINMAIN.CPP文件中,其主要职责包括调用AfxWinInit()进行框架初始化,以及通过pApp->InitApplication()执行应用内部的初始化过程。此外,还详细分析了各个关键函数的作用及其在程序启动过程中的具体功能。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
author-avatar
果博东方手机版
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有