命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每一个参数。编程
下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动做:数组
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s/n", argv[1]); } 函数
else if( argc > 2 ) 学习
{ printf("Too many arguments supplied./n"); } else { printf("One argument expected./n"); } }编码
使用一个参数,编译并执行上面的代码,它会产生下列结果:spa
$./a.out testing The argument supplied is testing命令行
使用两个参数,编译并执行上面的代码,它会产生下列结果:3d
$./a.out testing1 testing2 Too many arguments supplied.指针
不传任何参数,编译并执行上面的代码,它会产生下列结果:视频
$./a.out One argument expected
应当指出的是,argv[0] 存储程序的名称,argv[1] 是一个指向第一个命令行参数的指针,*argv[n] 是最后一个参数。
若是没有提供任何参数,argc 将为 1,不然,若是传递了一个参数,argc 将被设置为 2。
多个命令行参数之间用空格分隔,可是若是参数自己带有空格,那么传递参数的时候应把参数放置在双引号 “” 或单引号 ” 内部。
让咱们从新编写上面的实例,有一个空间,那么你能够经过这样的观点,把它们放在双引号或单引号””””。
让咱们从新编写上面的实例,向程序传递一个放置在双引号内部的命令行参数:
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s/n", argv[0]); if( argc == 2 )
{ printf("The argument supplied is %s/n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied./n"); }
else { printf("One argument expected./n"); } }
使用一个用空格分隔的简单参数,参数括在双引号中,编译并执行上面的代码,它会产生下列结果:
$./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2
另外若是你想更好的提高你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许能够帮到你~
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!
编程学习: