注:以下大部分内容来源于 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。
网友评论