博学而笃志 切问而近思 仁在其中
详情
C语言命令行参数
作者:--     发布时间:2019-11-20     评论:0     阅读:0

从命令行传递的参数称为命令行参数。这些参数由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中从命令行运行以下程序:

f:\>cd worksp\clanguage\command-line-arguments\debug

f:\worksp\clanguage\command-line-arguments\debug>dir
 驱动器 f 中的卷是 others
 卷的序列号是 0007-6f29

 f:\worksp\clanguage\command-line-arguments\debug 的目录

2017/08/18  01:23    <dir>          .
2017/08/18  01:23    <dir>          ..
2017/08/18  01:23            37,376 command-line-arguments.exe
2017/08/18  01:23           291,652 command-line-arguments.ilk
2017/08/18  01:23           552,960 command-line-arguments.pdb
               3 个文件        881,988 字节
               2 个目录 53,178,052,608 可用字节

f:\worksp\clanguage\command-line-arguments\debug>command-line-arguments.exe test-arg
program name is: command-line-arguments.exe
first argument is: test-arg

f:\worksp\clanguage\command-line-arguments\debug>

如果传递很多参数,它只会打印一个,如下:

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]....等等。



下一篇:测试
相关文章
loading......
最新动态
所有评论

loading......

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册