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" Progranm name ./a.out The argument supplied is testing1 testing2
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP