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

C 语言命令行参数完全指南:argc 与 argv 实战详解

执行 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. 优化化工包装线:提升运行时间与OEE追踪的升级方案
  3. 解码器详解:类型、真值表与实际应用
  4. 理解 SMT 生产线效率:PCB 生产的关键指标
  5. GD&T详解:线轮廓度 vs 面轮廓度——二维与三维公差控制的核心差异
  6. 精通 Fanuc G04 停留命令:CNC 精准计时控制
  7. 生产线详解:装配线如何驱动制造效率
  8. 建筑退界线(红线)详解:城市地块开发边界的法定约束
  9. 桥接抽头详解:电信预埋冗余线缆的副作用与排查对策
  10. 装配线详解:互换件如何重塑工业生产范式
  11. 精通Python函数参数:位置、关键字与默认参数
  12. Java 命令行参数完全指南:传递、解析与数值处理