从命令行传递的参数称为命令行参数。这些参数由main()函数来处理的。
要支持命令行参数,您需要更改main()函数的结构,如下所示 -
int main(int
argc, char *argv[] )
|
在这里,argc计算参数的数量。它将文件名称作为第一个参数。
argv []包含参数的总数。第一个参数永远是此程序的文件名。
命令行参数实例
我们来看一下命令行参数的例子,用文件名传递一个参数。创建一个源文件:main-commandline.c,其代码如下所示
-
#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上执行上面示例代码,得到以下结果 -
root@AYZ:~#
gcc main-commandline.c
root@AYZ:~# ./a.out argc_value
Program name is: ./a.out
First argument is: argc_value |
在Windows中从命令行运行以下程序:
如果传递很多参数,它只会打印一个,如下:
root@AYZ:~#
./a.out hello I am Maxsu
Program name is: ./a.out
First argument is: hello |
但是,如果您在双引号内传递许多参数,则所有参数将被视为单个参数。如下
-
root@AYZ:~#
./a.out "hello I am Maxsu"
Program name is: ./a.out
First argument is: hello I am Maxsu |
您可以编写程序来打印所有参数。在这个程序中,我们只打印argv
[1],这就是为什么只打印一个参数的原因了,您可以根据需要使用或打印argv [2],argv
[3],argv [4]....等等。
|
899 次浏览 |
3次 |
|
捐助 |
|
|
|
|
|