C语言中命令行参数列表的获取

147 阅读1分钟
#include <stdio.h>
int main(int argc, char const *argv[])
{
    return 0;
}
参数说明
argc数组argv的长度,也就是命令行参数的个数+1
argv[0]指向程序文件名字符串的指针
argv[1]指向第1个命令行参数字符串的指针
argv[2]指向第2个命令行参数字符串的指针

测试用例:

#include <stdio.h>
#include <string.h>

int main(int argc, char const *argv[])
{
    
    if(argc <= 1){ // 即没有传入任何参数
        return 1;
    }

    if(strcmp(argv[1], "num") == 0){
        for (int i = 0; i < argc; i++)
        {
           printf("argv[%d] : %s\n", i, argv[i]);
        }  
    }else if(strcmp(argv[1], "cnt") == 0){
        printf("命令行数参数的个数有: %d\n", argc - 1);
    }else{
        printf("输入的参数不匹配");
    }
    
    return 0;
}

执行命令:

#编译源文件
E:\cpp>gcc argv.c -o argv

#执行
E:\cpp>argv.exe num first second third
argv[0] : argv.exe
argv[1] : num
argv[2] : first
argv[3] : second
argv[4] : third

E:\cpp>argv.exe cnt first second third
命令行数参数的个数有: 4

E:\cpp>argv.exe two
输入的参数不匹配