命令行参数

2019-05-01  本文已影响0人  波洛的汽车电子世界

注:以下大部分内容来源于 coursera 课程《C++程序设计》
在命令行输入“ 可执行文件+字符串 ”,称为命令行参数。

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

argc是int类型的,它表示的是命令行参数的个数。用户不需要传递,它会根据用户从命令行输入的参数个数,自动确定。argv是char*类型的数组,后面还有一个子数组[],所以叫指针数组,里面的每个元素都是char*类型的指针,每个指针都指向字符串,这个字符串里面就存放着“命令行参数”。
argv[0]指向的字符串就是第一个命令行参数,一般来说是用户运行的程序的名字。准确地说,argv是char**类型的,它的作用是存储用户从命令行传递进来的参数。
例子:

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

将上面的程序编译成sample.exe,然后在控制台窗口敲

sample para1 para2  s.txt 5 "hello world"

这个语句一共有6个命令行参数,输出结果是

sample
para1 
para2  
s.txt 
5 
hello world

如果命令行参数内部有空格,那么就像"hello world"一样,用引号括起来。
另一个例子:

#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]);
}

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

上一篇 下一篇

猜你喜欢

热点阅读