执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。

命令行参数是使用 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");    } }

使用一个参数,编译并执行上面的代码,它会产生下列结果:

$./a.out testing The argument supplied is testing

使用两个参数,编译并执行上面的代码,它会产生下列结果:

$./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++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习:


 

编程学习:


 
内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zuishuaideou/p/14585815.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程

4780 0元 限免