美文网首页C语言基础学习
《C语言35—命令行参数》

《C语言35—命令行参数》

作者: 竹予青青 | 来源:发表于2019-04-09 15:33 被阅读31次

2019年4月9日星期二 中雨转小雨

(声明:理论知识部分来自菜鸟教程网站!)
今日学习内容:

37、C 命令行参数

执行程序时,可以从命令行传值给 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


Weif
2019年4月9日

相关文章

  • go 语言第三节课

    命令行参数 1.C语言中的命令行参数在C语言中main函数可以接收两个参数int main(int argc, c...

  • 《C语言35—命令行参数》

    2019年4月9日星期二 中雨转小雨 (声明:理论知识部分来自菜鸟教程网站!)今日学习内容: 37、C 命令行参数...

  • 命令行参数

    C语言中的命令行参数在C语言中main函数可以接收两个参数int main(int argc, const cha...

  • C++ - 命令行参数

    argh:代表启动程序时候,命令行参数的个数。C/C++语言规定,可执行程序程序本身的的文件名,也算一个命令行参数...

  • c语言命令行参数

    在学习之前我们先看看“最简单”的helloworld 程序 我想大家对这段程序应该是轻车熟路了,但是大家有没有想过...

  • C语言 main()函数

    C语言 main()函数 C语言main函数的完全格式是 argc: 是执行程序时命令行参数个数,需要注意,程序本...

  • 命令行参数解析(c编程)

    该文主要介绍c语言通过命令行方式输入参数,程序如何获取并解析参数。例如:./a.out -a red -b blu...

  • [基础] 如何用 AHK 处理命令行参数

    写过 C 语言的朋友都清楚 main() 函数可以有两个参数,argc 和 argv,argc 是命令行参数个数,...

  • C/C++ 命令行参数解析库选型

    C/C++ 程序可以用的命令行参数解析库主要有如下这些: cmdline:一个轻量级的 C/C++ 命令行参数解析...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

网友评论

    本文标题:《C语言35—命令行参数》

    本文链接:https://www.haomeiwen.com/subject/lqgbiqtx.html