![6237756b8ed6b6d03106671081561f99.png](https://i-blog.csdnimg.cn/blog_migrate/e544580cad13b7a98185e24936abc9ec.jpeg)
上一课是 [C++探索之旅 | 第一部分第二课:C++编程的必要软件(https://zhuanlan.zhihu.com/p/160965693)
经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++ 是什么。
我们也安装了适合自己的 IDE(Integrated Development Environment,就是“集成开发环境”的意思)。
除了使用 IDE 之外(IDE 集成了文本编辑器,编译器,调试器,运行程序,等),也可以选择另一种难一些的方式:自己用某一种文本编辑器来编写 C++ 代码,用 g++(GNU 项目的 C++ 的编译器)来编译程序,然后用命令行来运行程序。
推荐几个不错的文本编辑器:Vim,Emacs,Sublime Text,Atom,VS Code(现在 VS Code 非常火,通过安装各种插件可以成为 IDE),等。
以上几个文本编辑器,我都用过。Sublime 只用了一会,Vim 和 Emacs 用得比较多,Atom 也不错,微软出的 VS Code 也挺好的。
这一课我们就来介绍命令行程序,用 IDE 或 文本编辑器编写第一个 C++ 程序,以及讲解 C++ 程序的基本原理吧。
2. 命令行的奇幻世界
这个标题是不是有点玄乎:命令行还有奇幻可言?什么是命令行?
我们会一一解释。
也许说起编写第一个程序,大家会很激动,期待干一番大事业。
但是,遗憾的是,我们这一课可不会带大家开始编写《星际争霸》这样的游戏(当然我的实力也远远够不上... 那需要一个专业团队耗费很多年才能完成),也不会来写一个浏览器,或者视频播放器,等等。
我们会“慢条斯理”地前进,因为我们要做到的是“踏实”,因为即使是编写《星际争霸》的暴雪团队中的编程精英,也是从最基础的编程知识学起的。
首先,我们来说一说什么是命令行程序。
我们需要知道,有两种类型的程序: 命令行程序 和 图形界面程序 。
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。
图形界面程序
简单来说,图形界面程序就是“显示窗口的程序”。
有过 Windows 使用经验的朋友肯定对这样的程序不陌生,因为就连微软的 Windows 操作系统的 "Windows"(window 是英语“窗、窗户”的意思,windows 是 window 的复数)这个英语单词的意思就是“视窗”,Windows 操作系统其实应该翻成“视窗操作系统”。
所以我们平时也就是在操作形形色色的“窗口”,比如 Chrome 浏览器,火狐浏览器,QQ,微信,迅雷,视频播放器,等等。想一想,是不是这些程序都有一个“窗口”作为最外边的框架?我们可以打开窗口,关闭窗口,调节窗口大小,操作窗口内部的按钮,等等。
这样的程序,专业术语叫做 GUI 程序。GUI 是 Graphic User Interface 的首字母缩略词,表示“图形用户界面”。
例如下图中,我们可以看到我们所熟知的 Office Word 软件:
![558bb94bfd3f7d17dc20dceb53a56b89.png](https://i-blog.csdnimg.cn/blog_migrate/c45cacfd81f1242692a4bfc2f9a701c0.png)
命令行程序
注意:真正的命令行界面应该是完全没有图形的,就是一个只能输入命令,而且通常是黑色背景,白色字体的“大黑洞”。 我们以下举例的时候所说的命令行程序,其实大多是在图形界面内创建一个窗口,此窗口内就像是命令行界面的屏幕一样,通常称为“终端”(Terminal)。
Windows 里面也有命令行程序,就是大家可能使用过的 cmd.exe 程序(在 Windows 下按 【Windows 键(键盘左下角有微软图标的按键)+ 字母键 R 】, 然后输入 cmd
,回车,就可以调出),它其实是微软 的 Windows 系统基于 Windows 上的命令解释程序,类似于微软的 DOS 操作系统。如下图:
![8f7a5f5a5b307058b244a84323a926e4.png](https://i-blog.csdnimg.cn/blog_migrate/187ddae7e23cc4028d8a2cab7fb0bd0a.png)
macOS 里也有 Unix 范式的命令行解释器:
![2252b49336664fe52264d52ce7318744.png](https://i-blog.csdnimg.cn/blog_migrate/3bc7203222f43de63bb63d41d0b012e0.png)
看了 Windows 和 macOS 下的命令行程序,再来看一下我们 Linux(用 Ubuntu 这个 Linux 发行版来做例子)的命令行程序:
![f2e37f64254ddcea576032734022d4a4.png](https://i-blog.csdnimg.cn/blog_migrate/c3ca220e5ef0a4ee5ab21641ebaa2f90.png)
虽说终端或者命令行界面看起来比图形界面“难看”,大家会说“