C++编写的一个模拟终端命令(附源码)
源码地址:https://gitee.com/TL0902/term/tree/master/love
引言
我发现C站的好多同学们都喜欢C、C++语言特别是还在基础的学生,而且大多不知道方向,问的最多的问题就是应该走什么路线,下面怎么学习,而且特别钻研C,挺好的
那这里我可以给大家简单的说一下,仅代表自己观点说给关注我的小伙伴们,其他的大佬看见勿喷,C语言作为我们计算机专业入门必修课,可谓是经久不衰,并且通过C语言了解程序语法是相当容易理解的,难点在于指针吧,所以后面的像java语言直接抛弃了指针的操作;
那我们学习一门语言不在于语言本身,而是它更容易做什么,为什么说更容易呢,这里就要提一嘴了,人工智能==python;nononno,任何语言都可以做计算,做人工智能,但是python用法简单,其中人工智能库比较丰富,java能做吗,也能做,C呢,也能做,但是python更容易些,好上手,库丰富,所以还在纠结学习什么语言的同学,应该改正一个观点,我到时候想干什么,我想做前端工程师,就学习js,html,css,我想学习嵌入式,做智能硬件好,你可以学习汇编,去学习C,想学习Linux做后端,学习Linux,我们知道Linux内核是C语言写的,想做后端,学习java,生态丰富,学习技术栈,不在于语言本身,在于更合适,当然了,还有喜欢一门语言,我看过一个说法,说刚开始学的语言是C++,为什么学习C++呢,是觉得所有语言的经典程序“hello world”中,C++看着更顺眼;
那说了这么多,C语言是作为新手语言是非常好的,语法简单容易理解,作为入门语言特别合适,那这里C++就不多说了,被称中级语言,它综合了高级语言和低级语言的特点。自从学习完C、C++后面我更喜欢写C++程序,因为增加了面向对象机制,使用封装继承多态更好使用些;
好了,不多说了,希望小伙伴们都可以找到自己的方向,学习到更多的知识;对了,还有就是博主的博客都是可以进行学习的,因为都是很基础,开篇都会介绍,如果小伙伴们不懂,只能博主后面努力提高博文质量;
介绍
大家对终端(命令行)不陌生吧,那C语言的程序都是在终端打开,黑框框是不是,我们平常使用的好多东西其实都是命令驱动;我们如何运行一个C程序,点击运行,是的没错,但是背后的原理是什么呢,最主要的就是这个命令gcc 文件名
,java程序运行,javac 文件名; java 文件名
,不知道大家有没有用过命令行去操作,我们试一下:
Win+R打开运行输入cmd就打开命令行了,那我们再输入一个help就会出现很多命令:
常用的命令有cd mv echo
我们可以使用date来打印时间并修改时间,我们可以输入echo ‘hello world’
输出经典程序,
那今天我们就来写一个这样的命令程序;
体验上手
再次出现以下,源码地址:https://gitee.com/TL0902/term/tree/master/love
大家下载的源码中的bin目录下面有个love,但是我们点击是没有用的,因为这里我们使用的是命令行终端模式,在目录地址栏下,输入cmd直接回车打开一个当前目录下的终端:
打开终端后输入love -h
可以查看参数帮助,这里我提示语句加少了,应该加上完整说明:
C:\Users\TL\Desktop\fuxinrui\C++\fuxinrui\Debug>love -h
---b 该参数提供特别宠爱
---d 该参数提供加倍宠爱
我们先来试下这不加参数的,后面跟上一个你喜欢人的名字,很简单直接输入一个:
C:\Users\TL\Desktop\fuxinrui\C++\fuxinrui\Debug>love lover
我爱你lover
我们可以试下这些参数,可以看大不用的参数不同的效果:
C:\Users\TL\Desktop\shui\love\love\Debug>love -b lover
我特别特别爱你lover
C:\Users\TL\Desktop\shui\love\love\Debug>love -d lover
我特别特别超级超级宇宙爱你lover
那我程序里面没提,在命令下,很多参数是可以复用的,比如,我这里复用下这两个参数:
C:\Users\TL\Desktop\shui\love\love\Debug>love -b -d lover
我特别特别超级超级宇宙非常非常double,double爱你lover
C:\Users\TL\Desktop\shui\love\love\Debug>
这就是全部的效果:
那我们看看其中的知识点,以及实现过程吧;
谁说理科生不会表白的(🙂)
代码分析
main方法
相信好多同学在学C语言的时候老师不了解main方法的作用,main方法作为主程序,也就是程序的入口,是谁调用的呢,答案是:我们的操作系统调用的,就是刚才你再命令行中输入love执行这个程序,操作系统调用的;
main方法参数
那我们还要知道,main方法自带两个参数的int argc, char* argv[]
是不是平常写的main都没有这个参数呢?以下几种写法都可以:
int main()
int main(int argc)
int main(int argc, char* argv[])
那我们需要什么,我们就往main方法里面加什么参数;
参数的作用
int argc
:这个很简单,我们首先看参数类型,int类型,其实是个整数,是程序给进的参数个数,刚才我们也体验了,我们使用第一个使用的时候love -h
给的就是两个参数个数,是的包括自己程序名;
char argv[]*:一看,复杂了,什么类型呢,数组指针类型,不要怕,这里呢我们不说指针,我们只看作用,arg[]数组里面放的就是我们接收到的参数内容;
我这里也有一段程序
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[]) {
for (int i = 0; i < argc; i++) {
cout << endl;
cout << argv[i] << endl;
}
return 0;
}
我们用命令行输入:程序名 h we r t adsa
运行结果:
程序名
h
we
r
t
adsa
所以到这里就理解了吧!动手尝试下
那再运行这段程序呢
#include<iostream>
using namespace std;
int main(int argc, char* argv[]) {
cout << "我爱你" << argv[1] << endl;
int chioce;
cin >> chioce;
switch (chioce)
{
case '1' :
cout << "你输入的是1";
break;
case 2:
cout << "你输入的是2";
break;
default:
cout << "你输入的是别的数";
break;
}
return 0;
}
是不是到这里就理解了;
tips
环境变量
那程序是完成了,我们也在windows目录下命令去使用,Win+R打开的命令行并不能使用,如果我们自己开发一个真正有用的功能,想要再全局使用,那我们就需要配置到环境变量;所以到这里大家有没有理解为什么好多软件都需要配置环境变量;
那这里我给大家分享一个我平常使用的一个小技巧:
1、在D盘新建一个目录,我这里叫shortcut,表示快捷方式的意思;
2、将这个目录配置到环境变量;怎么去配置我就不多说了,大家应该知道;
3、将平常使用的软件快捷方式,拉到这个目录,改个快捷名,像这样:
像平常在上课啊,敲代码呀,不愿意退出界面,只需要win+R,运行就打开了,然后输入qq就可以开始摸鱼了
那大家就可以把自己到时候自己开发一个真正有用的功能,想要再全局使用,就可以这样配置,很方便;
小知识点
这里还有最后一个就是,输出的那个爱心,哈哈,这里我当初是有一个这个程序,就直接把运行程序拿过来,然后直接system调用,这样是不是我们就可以建立起多个程序的联系;
留你们的坑
我这里同样留下了好多优化的地方,自己不说了,希望你们可以完善吧!
小结
拿着这个代码去你女朋友面前展示吧,这里的知识点我都是大致讲过,拿指针来说,虽然难,不好理解,但是我们多加联系,一定可以的,记住一定要多动手,希望这篇文章对你有启发和帮助!
记住一定要多动手,看到这里了确定不点个赞和关注吗