📜  C中的命令行参数

📅  最后修改于: 2020-10-22 09:43:17             🧑  作者: Mango

C中的命令行参数

从命令行传递的参数称为命令行参数。这些参数由main()函数处理。

为了支持命令行参数,您需要按如下所示更改main()函数的结构。

int main(int argc, char *argv[] )

在这里,argc计算参数的数量。它将文件名作为第一个参数。

argv []包含参数总数。第一个参数始终是文件名。

让我们看一下命令行参数的示例,其中传递了一个带有文件名的参数。

#include 
void main(int argc, char *argv[] )  {

   printf("Program name is: %s\n", argv[0]);
 
   if(argc < 2){
      printf("No argument passed through command line.\n");
   }
   else{
      printf("First argument is: %s\n", argv[1]);
   }
}

在Linux中按以下方式运行此程序:

./program hello

在Windows中从命令行运行该程序,如下所示:

program.exe hello

输出:

Program name is: program
First argument is: hello

如果你通过很多争论,这将只print。

./program hello c how r u

输出:

Program name is: program
First argument is: hello

但是,如果在双引号中传递许多参数,则所有参数将仅被视为一个参数。

./program "hello c how r u"

输出:

Program name is: program
First argument is: hello c how r u

您可以编写程序以print所有参数。在此程序中,我们仅打印argv [1],这就是为什么它仅打印一个参数。