课程表

C语言 教程

C 标准库

工具箱
速查手册

C 命令行参数

当前位置:免费教程 » 程序设计 » C 语言

执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。

命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动作:

  1. #include <stdio.h>
  2.  
  3. int main( int argc, char *argv[] )
  4. {
  5. if( argc == 2 )
  6. {
  7. printf("The argument supplied is %s\n", argv[1]);
  8. }
  9. else if( argc > 2 )
  10. {
  11. printf("Too many arguments supplied.\n");
  12. }
  13. else
  14. {
  15. printf("One argument expected.\n");
  16. }
  17. }

使用一个参数,编译并执行上面的代码,它会产生下列结果:

  1. $./a.out testing
  2. The argument supplied is testing

使用两个参数,编译并执行上面的代码,它会产生下列结果:

  1. $./a.out testing1 testing2
  2. Too many arguments supplied.

不传任何参数,编译并执行上面的代码,它会产生下列结果:

  1. $./a.out
  2. One argument expected

应当指出的是,argv[0] 存储程序的名称,argv[1] 是一个指向第一个命令行参数的指针,*argv[n] 是最后一个参数。如果没有提供任何参数,argc 将为 1,否则,如果传递了一个参数,argc 将被设置为 2。

多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号 "" 或单引号 '' 内部。让我们重新编写上面的实例,有一个空间,那么你可以通过这样的观点,把它们放在双引号或单引号""""。让我们重新编写上面的实例,向程序传递一个放置在双引号内部的命令行参数:

  1. #include <stdio.h>
  2.  
  3. int main( int argc, char *argv[] )
  4. {
  5. printf("Program name %s\n", argv[0]);
  6. if( argc == 2 )
  7. {
  8. printf("The argument supplied is %s\n", argv[1]);
  9. }
  10. else if( argc > 2 )
  11. {
  12. printf("Too many arguments supplied.\n");
  13. }
  14. else
  15. {
  16. printf("One argument expected.\n");
  17. }
  18. }

使用一个用空格分隔的简单参数,参数括在双引号中,编译并执行上面的代码,它会产生下列结果:

  1. $./a.out "testing1 testing2"
  2.  
  3. Progranm name ./a.out
  4. The argument supplied is testing1 testing2
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号