精华内容
下载资源
问答
  • C语言命令行参数
    2021-05-20 04:15:51

    这是可能在命令行中的一些值传递给C程序执行。特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要。

    命令行参数使用main()函数的参数,其中argc是指传递参数的数量,argv[]是一个指针数组指向传递给程序的每个参数。下面是一个简单的例子,检查命令行是否提供的任何参数,并相应地采取动作:

    #includeintmain(intargc,char*argv[]){if(argc==2){printf("The argument supplied is %s

    ",argv[1]);}elseif(argc>2){printf("Too many arguments supplied.

    ");}else{printf("One argument expected.

    ");}}

    当上面的代码被编译,并与一个参数执行,它会产生以下结果。

    $./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只有一个参数,如果传递一个参数,那么argc设置为2。

    通过所有用空格隔开的命令行参数,但如果参数本身具有的空间,那么可以通过这样的参数把内部用双引号“”或单引号''分开。让我们重新写上面的例子再一次,将打印程序的名称,也将在双引号内传递一个命令行参数:

    #includeintmain(intargc,char*argv[]){printf("Program name %s

    ",argv[0]);if(argc==2){printf("The argument supplied is %s

    ",argv[1]);}elseif(argc>2){printf("Too many arguments supplied.

    ");}else{printf("One argument expected.

    ");}}

    当上面的代码被编译以及带一些空格,但里面的双引号分隔一个参数执行,它会产生以下结果。

    $./a.out "testing1 testing2"

    Progranm name ./a.out

    The argument supplied is testing1 testing2

    ¥ 我要打赏

    纠错/补充

    收藏

    上一篇:

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    更多相关内容
  • c语言命令行参数怎么用?c语言命令行参数有什么作用?之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言的命令行参数非常简单,只需要一个简单的例子...

    c语言命令行参数怎么用?c语言命令行参数有什么作用?之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言的命令行参数非常简单,只需要一个简单的例子就可以说明:

    #include

    void main(int argc,char** argv)

    {

    printf("%d\n",argc);

    printf("%s\n",argv[0]);

    printf("%s\n",argv[1]);

    printf("%s\n",argv[2]);

    }

    在上面的例子中,我们给main函数传递两个参数,argc和argv。argc是int类型的,它表示的是命令行参数的个数。不许要用户传递,它会根据用户从命令行输入的参数个数,自动确定。argv是char**类型的,它的作用是存储用户从命令行传递进来的参数。它的第一个成员是用户运行的程序名字。

    对于上面的例子,我们将其保存为test.c,用gcc编译生成目标文件为test,测试如下:

    (1)我们值在命令行下直接运行程序,没有传递其它任何参数:

    ./test

    运行结果如下:

    4858677e0272702384a84a305311c4a1.png

    第一个输出的是argc,因为我们只输入了./test,所以argc为1,即只有一个命令行参数。后面输出的第一个命令行参数也是./test。接着程序就出错了,因为后面已经没有第二个和第三个参数了,在写实际的应用时,应注意对这一部分进行容错处理。

    (2)我们在命令行下输入:

    ./test hello world

    6afda8c85b629082c70fbafab2ca72be.png

    可以看到argc为3,第一个参数为./test,第二个参数为hello,第三个参数为world。

    (3)我们继续输入:

    ./test hello world hello world

    9f3207285ec9fedf23ec8fa68cc30400.png

    可以看到这时,argc变为5,argv指数出了前面三个参数,当然还可以把后面的两个参数也进行输出。

    如果命令行中传递的一个参数包括空格,就需要用用“ ”将参数扩起来例如:

    ./test "hello world" "hello world"

    d0621bb224ffc6143265fcdf4ddd4d4c.png

    我们将hello world整体当作一个参数传递,就需要使用“hello world”。

    需要注意的是argv的类型可以是char ** argv,char argv[ ][ ],char* argv[ ]。

    展开全文
  • c语言命令行参数

    2021-05-19 02:19:56
    匿名用户1级2010-05-27 回答这个程序所用的文件名可以直接从命令行给出,例如生成了a.exe文件,那么:a.exe b.txt执行这个命令行,程序就会统计b.txt.文件中的字母数量。学习编程就像学数学,最重要的就是自己独立...

    匿名用户

    1级

    2010-05-27 回答

    这个程序所用的文件名可以直接从命令行给出,例如生成了a.exe文件,那么:

    a.exe b.txt

    执行这个命令行,程序就会统计b.txt.文件中的字母数量。

    学习编程就像学数学,最重要的就是自己独立思考,像这个程序,完全可以通过研读我前面写的内容自己看出其运行机制。千万不要做一个不会思考的人。

    ****************************************************

    假如生成的可执行文件名为a.exe,那么:

    a.exe abc def ht

    其中的abc和def以及ht就是传到a.exe的命令行参数,它们都是字符串,要想在程序中使用这些参数,就必须把main函数的参数列表写成如下形式:

    int main(int argc, char* argv[])

    这样,argc就是参数的个数(程序路径自身也是一个参数),所以对于上面的例子而言,argc=4,argv字符指针数组中就保存了指向各个参数字符串的指针(程序路径是第一个参数,由argv[0]指向),所以对于上面的例子而言,

    argv[0]="a.exe"

    argv[1]="abc"

    argv[2]="def"

    argv[3]="ht"

    一个示例,说明如何使用这些参数:

    //---------------------------------------------------------------------------

    #include

    int main(int argc, char* argv[])

    {

    int i;

    for (i = 0; i

    puts(argv[i]);

    }

    return 0;

    }

    //---------------------------------------------------------------------------

    如果这个程序生成的可执行文件名为a.exe,并以开头的命令行执行这个程序,那么会输出:

    a.exe

    abc

    def

    ht

    另外,main()函数可以有第三个参数,也是一个字符指针数组,这个数组中保存了指向保存当前系统中的环境变量字符串的指针,例如以下程序可以输出系统中定义的环境变量:

    //---------------------------------------------------------------------------

    #include

    int main(int argc, char* argv[],char *env[])

    {

    int i;

    for (i = 0; env[i]; i++) {

    puts(env[i]);

    }

    return 0;

    }

    //---------------------------------------------------------------------------

    有关程序参数的详细说明,请参考一下国外的C语言教材和LINUX系统编程方面的教材

    展开全文
  • 之前曾经使用过很多次c语言命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言命令行参数非常简单,只需要一个简单的例子就可以说明 新建test.c //文件名称是 test.c #...

    原文链接

    之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言的命令行参数非常简单,只需要一个简单的例子就可以说明
    新建test.c
    //文件名称是 test.c
    #include <stdio.h>
    void main(int argc,char** argv)
    {
            printf("%d\n",argc);
            printf("%s\n",argv[0]);
            printf("%s\n",argv[1]);
            printf("%s\n",argv[2]);
    }
    
    在上面的例子中,我们给main函数传递两个参数,argc和argv。argc是int类型的,它表示的是命令行参数的个数。不许要用户传递,它会根据用户从命令行输入的参数个数,自动确定。argv是char**类型的,它的作用是存储用户从命令行传递进来的参数。它的第一个成员是用户运行的程序名字。
    对于上面的例子,我们将其保存为test.c,用gcc编译生成目标文件为test,测试如下:

    (1)我们值在命令行下直接运行程序,没有传递其它任何参数:

    gcc  test.c -o test
    
    ./test
    
    第一个输出的是argc,因为我们只输入了./test,所以argc为1,即只有一个命令行参数。后面输出的第一个命令行参数也是./test。接着程序就出错了,因为后面已经没有第二个和第三个参数了,在写实际的应用时,应注意对这一部分进行容错处理。
    1
    ./test
    段错误 (核心已转储)
    

    (2)我们在命令行下输入:

    ./test hello world
    
    3
    ./test
    hello
    world
    

    (3)我们继续输入:

    ./test hello world hello world
    
    可以看到这时,argc变为5,argv指数出了前面三个参数,当然还可以把后面的两个参数也进行输出。
    5
    ./test
    hello
    world
    
     如果命令行中传递的一个参数包括空格,就需要用用“ ”将参数扩起来例如:
    
    ./test "hello world" "hello world"
    
    3
    ./test
    hello world
    hello world
    

    我们将hello world整体当作一个参数传递,就需要使用“hello world”。

    需要注意的是argv的类型可以是char ** argv,char* argv[ ]。

    展开全文
  • 命令行参数 在之前的学习中,main函数—般都是没有参数的,对应的,在运行时,—般就是直接输入可执行的程序文件名(例如. / main ) 但是,实际上main函数是可以有参数的。可以将任何过去无参数的main函数替换成下面...
  • windows下的C语言命令行参数

    千次阅读 2020-05-16 15:30:49
    C语言命令行参数的使用 测试代码 #include <stdio.h> void main(int argc,char** argv) { printf("%d\n",argc); printf("%s\n",argv[0]); printf("%s\n",argv[1]); printf("%s\n",argv[2]); } 参数说明 ...
  • C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!是的,你没有看错,从今天开始,公众号会持续原创一系列C语言的内容,同时穿插操作系统,组成原理,汇编,以及一些类...
  • C语言命令行参数详解

    万次阅读 多人点赞 2018-02-10 12:38:44
    C语言的main函数通常含有参数argc和argv,写法通常如下: int main(int argc,char *argv[]) ... argv : *argv[]是一个指针数组,里面存放的指针指向所有的命令行参数,argv[0]指向程序的全局路径,a...
  • 文章主要介绍C语言程序设计中关于命令行参数的一些技巧。
  • C语言命令行参数汇总

    2021-05-20 15:10:47
    从命令行传递的参数称为命令行参数。这些参数由main()函数来处理的。要支持命令行参数,您需要更改main()函数的结构,如下所示 -int main(int argc, char *argv[] )C在这里,argc计算参数的数量。它将文件名称作为第...
  • C语言——命令行参数

    2022-03-22 16:51:37
    命令行参数 在图形界面普及之前都使用命令行界面。DOS和UNIX就是例子。Linux终端提供类UNIX命令行环境。命令行是在命令行环境中,用户为运行程序输入命令的行。假设一个文件中有一个名为fuss的程序。在UNIX环境中...
  • C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针...
  • C语言命令行参数处理-getopt_long函数
  • 2011-06-18 回答这个程序所用的文件名可以直接从命令行给出,例如生成了a.exe文件,那么:a.exeb.txt执行这个命令行,程序就会统计b.txt.文件中的字母数量。学习编程就像学数学,最重要的就是自己独立思考,像这个...
  • c语言+命令行参数In this article, we’ll be looking at how we can use command line arguments in C / C++. 在本文中,我们将研究如何在C / C ++中使用命令行参数。 Command Line arguments are very useful if ...
  • 在上一篇笔记中有分享Linux下的vi/vim编辑器的使用方法(【Linux...关于在Windows命令行下编译C程序的方法可查看往期笔记:【C语言笔记】windows命令行下编译C程序、【C语言笔记】使用MinGW来编译C程序。首先,使用...
  • c语言命令行参数详解 c语言命令行参数
  • C语言解析命令行参数

    2021-05-20 02:28:51
    } getopt函数的第三个参数表示可以接收的option字符串,如上例可以接收-a/-b/-c/-d四个option,其中b和d后面跟冒号,代表可以有option argument,测试如下: ./a.out -a -b "Hello" -c -d '123' 打印结果如下: ...
  • C语言命令行传递参数

    千次阅读 2018-10-29 12:33:06
    1、C语言main函数参数的意义 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char *argv[]) { for(int i=0;i&lt;argc;i++) { printf("%s\n",argv[i]); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,307
精华内容 29,722
关键字:

c语言命令行参数