c语言命令行参数

时间:2022-12-02 14:28:39
int main(int argc, char * argv[])
{
    .....

}

argc: 代表启动程序时,命令行参数的个数。C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参数,因此,argc的值至少是1.

argv[]:指针数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。
例如,argv[0]指向的字符串就是第一个命令行参数,即可执行程序的文件名,argv[1]指向第二个命令行参数,argv[2]指向第三个命令行参数....。

#include <stdio.h>
int main( int argc, char * argv[])
{
    int i;
    for ( i = 0;i < argc; i++)
    {
        printf("%s\n",argv[i]);
    }
    return 0;
}

windows下,将上面的程序编译成sample.exe,然后在控制台窗口敲:
sample para1 para2 s.txt 5 "hello world"

上面有6个参数,双引号为了包含空格作为一个参数。

输出结果:
sample
para1
para2
s.txt
5
hello world

如下图,编译软件Dev c++

c语言命令行参数

如果是在unix环境的话,如下图
c语言命令行参数

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int i;
    for ( i = 0; i < argc; i++)
    {
        printf("argv[%d] is %s\n", i,argv[i]);

    }
    return 0;
}

// int argc;//表示读入字符串个数
// char *argv[];//指针数组,用来存放读入的字符串
// 程序的意思逐个输出所有读入的字符串,每个字符串间空一个制表符间隔

//输入输出样例  在终端环境

// ./a.out -a -k jkj dsad
// argv[0] is ./a.out
// argv[1] is -a
// argv[2] is -k
// argv[3] is jkj
// argv[4] is dsad