美文网首页
c语言命令行参数

c语言命令行参数

作者: iMikasa_ | 来源:发表于2021-11-08 22:32 被阅读0次

在学习之前我们先看看“最简单”的helloworld 程序

#include <stdio.h>

int main(int argc, char const *argv[])
{
    printf("hello world\n");
    return 0; 
}

我想大家对这段程序应该是轻车熟路了,但是大家有没有想过main后面的括号里是什么东东
众所周知,main函数是程序执行的起点,而函数名后面的括号是他的参数列表,而我们在什么时候传递这个参数呢?在讲解之前我们不妨先了解这括号里面的东东都是干啥的。。。

(int argc, char const *argv[])

int argc:(argument count)参数数量,他表示我们命令行中字符串的数量
char const argv[]:(argument value*)参数值,我们看到他是一个字符串数组,代表着我们传入的参数都会传入数组内,我们的程序可以通过这个数组访问到我们传入的参数

光说不练假把式,我们通过写代码了解他的如何用的。。。

#include <stdio.h>

int main(int argc, char const *argv[])
{
    printf("参数数量:%d\n",argc);
    printf("第【%d】个参数值:%s\n",1,argv[0]);
    return 0;
}

我们通过gcc编译并运行,出现以下结果


image.png

我们通过运行出来的结果可以发现,我们运行时就写了编译后的可执行文件名,并没有传入参数,但是参数的数量是1,值是我们在命令行写的运行命令(./hello),这是因为我们的文件名被存入了argv[]里面了,说以数量是1。

接下来,我们稍微改造一下刚才的程序

#include <stdio.h>

int main(int argc, char const *argv[])
{
    printf("参数数量:%d\n",argc);
    for (int i = 0; i < argc; i++)
    {
        printf("第【%d】个参数值:%s\n",i,argv[i]);
    }
    return 0;
}
image.png

我们传入的参数都被一一访问到,用法还是蛮简单的。


字符串参数转换为其他适当的数值类型,如下装换为int
如果你传入1,不通过一些函数转换的话,是不行的


image.png

如上图,我使用的是<stdlib.h>中声明的atoi函数

其他函数

atof() ——将字符串参数转换成double类型
atoi() ——将字符串参数转换成int类型
atol() ——将字符串参数转换成long类型

注意:注意检查参数的个数,在处理命令行参数前,先检查参数数目(根据自己的情况)

if(argc >1){
    //...
}

相关文章

  • go 语言第三节课

    命令行参数 1.C语言中的命令行参数在C语言中main函数可以接收两个参数int main(int argc, c...

  • 命令行参数

    C语言中的命令行参数在C语言中main函数可以接收两个参数int main(int argc, const cha...

  • C++ - 命令行参数

    argh:代表启动程序时候,命令行参数的个数。C/C++语言规定,可执行程序程序本身的的文件名,也算一个命令行参数...

  • c语言命令行参数

    在学习之前我们先看看“最简单”的helloworld 程序 我想大家对这段程序应该是轻车熟路了,但是大家有没有想过...

  • C语言 main()函数

    C语言 main()函数 C语言main函数的完全格式是 argc: 是执行程序时命令行参数个数,需要注意,程序本...

  • 命令行参数解析(c编程)

    该文主要介绍c语言通过命令行方式输入参数,程序如何获取并解析参数。例如:./a.out -a red -b blu...

  • [基础] 如何用 AHK 处理命令行参数

    写过 C 语言的朋友都清楚 main() 函数可以有两个参数,argc 和 argv,argc 是命令行参数个数,...

  • 《C语言35—命令行参数》

    2019年4月9日星期二 中雨转小雨 (声明:理论知识部分来自菜鸟教程网站!)今日学习内容: 37、C 命令行参数...

  • C/C++ 命令行参数解析库选型

    C/C++ 程序可以用的命令行参数解析库主要有如下这些: cmdline:一个轻量级的 C/C++ 命令行参数解析...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

网友评论

      本文标题:c语言命令行参数

      本文链接:https://www.haomeiwen.com/subject/owlpzltx.html