白癜风的原因 http://pf.39.net/bdfyy/bdfyw/180110/5989991.html带参数的程序可以让指令更加丰富多彩,比如,ls-l指令便是在ls指令后面添加了-l选项,通过不一样的选项,我们可以在终端看到不一样的运行结果。
我们也可以给自己的程序添加一些选项。一般情况下,我们需要把main()函数写成这样:
intmain(intargc,char*argv[]){//whatevercodeehrereturn0;}
这里argc即为参数的数量,argv[]即为各个参数的指针,我们可以简单写一个小程序来看看这两个参数是怎么回事:
intmain(intargc,char*argv[]){printf("argc=%d\n",argc);for(inti=0;iargc;i++){printf("argv[%d]:%s\n",i,argv);}return0;}
编译并运行:
mamba
asus-rog:test./bin/mainargc=1argv[0]:./bin/mainmambaasus-rog:test./bin/mainhelloworldargc=3argv[0]:./bin/mainargv[1]:helloargv[2]:world
对于参数argc和argv其实就很好理解了。
要使用选项,则我们需要明确各个参数的意义。另外,参数能否交换位置呢?是否可以有像-l这样的以-开头的参数呢?为实现这些目的,我们可以使用cxxopt或者CLI11这个库。本文主要介绍CLI11这个库(实际上cxxopt更加流行)。
CLI11是一个仅有头文件的命令解释器。参考资料:
GitHub官方代码仓库: