C / 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

以上是 C / C ++中的命令行参数 的全部内容, 来源链接: utcz.com/z/341195.html

回到顶部