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语言