C语言教程-C中的命令行参数

从命令行传递的参数称为命令行参数。这些参数由main()函数处理。
为了支持命令行参数,需要将main()函数的结构更改如下:
int main(int argc, char *argv[])
在这里,argc计算参数的数量。它将文件名作为第一个参数计算在内。
argv[]包含所有的参数。第一个参数总是文件名。
例子
让我们看一个命令行参数的例子,我们将一个参数与文件名一起传递。
#include <stdio.h>
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
如果传递了多个参数,它只会打印一个。
./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
你可以编写程序来打印所有的参数。在这个程序中,我们只打印了argv[1],所以它只打印了一个参数。