亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C - 命令行参数

可以在执行时将一些值从命令行传递给您的 C 程序。这些值称为命令行参数 很多时候它们对您的程序很重要,尤其是当您想从外部控制程序而不是在代码中硬编码这些值时。

命令行参数使用 main() 函数参数处理,其中 argc 指传递的参数个数,argv[] 是一个指针数组,它指向传递给程序的每个参数。下面是一个简单的例子,它检查是否有从命令行提供的任何参数并采取相应的措施 -

#include <stdio.h>

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

   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

上面的代码在单参数编译执行时,会产生如下结果。

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

当上面的代码使用两个参数编译和执行时,它会产生以下结果。

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

当上面的代码在不传递任何参数的情况下编译并执行时,它会产生以下结果。

$./a.out
One argument expected

需要注意的是 argv[0] 保存程序本身的名称和 argv[1] 是指向提供的第一个命令行参数的指针,*argv[n] 是最后一个参数。如果未提供任何参数,则 argc 将为 1,如果您传递一个参数,则 argc 设置为 2。

您传递由空格分隔的所有命令行参数,但如果参数本身有一个空格,那么您可以通过将它们放在双引号“”或单引号''中来传递这些参数。让我们再次重写上面的示例,我们将打印程序名称,并且我们还通过在双引号内添加命令行参数 -

#include <stdio.h>

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

   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

当上面的代码在编译和执行时使用由空格分隔但在双引号内的单个参数,它会产生以下结果。

$./a.out "testing1 testing2"

Program name ./a.out
The argument supplied is testing1 testing2

C语言

  1. 解码器
  2. Python 函数参数
  3. Java 命令行参数
  4. 什么是线路效率?
  5. 什么是生产线?
  6. 什么是建筑线?
  7. 什么是桥接抽头?
  8. 什么是装配线?
  9. 精密纵剪线简介
  10. 化学品包装线升级
  11. 线轮廓与曲面轮廓
  12. Fanuc Dwell G04 命令