您的位置:首页 > 其它

命令行变元(argc,argv[])

2007-10-09 16:10 274 查看
在支持c语言的环境中,可以在程序开始执行时候将命令行变元或者参数传递给程序。调用主函数时,它可以带有两个变元。第一个变元(习惯上称作argc,用于变元计数)的值为程序执行时命令行中变元的数目,(第二个变元成为argv,用于变元向量),是一个指向字符串数组的指针,其中每个字符串对应一个变元。我们常用多级指针处理这些字符串。

例如 命令

echo hello, world

打印输出 hello , world

则 argc=3;(输入字符串的数目)

argv[0]=echo; argv[1]=hello ;argv[2]=world ;

莱格图吧,用画图板的,哈哈,太痛苦了。

----------〉算了,弄不上来,真是浪费时间。— 。— !

c语言标准要求第一个变元argc[0]为调用相应程序的命令名(我理解就是程序的文件名),且最后一个argv[argc]必须为空指针。因此argc的值至少为1。若其值为1,则命令名后面没有命令行变元。实际上可选变元为argv[1]......argv[argc-1].


#include<stdio.h>






//回应程序命令行变元,第一个版本




main(int argc, int *argv[])




...{


int i;


printf("%d ",argc);


for(i=0;i<argc;i++)




...{


printf("%s%s",argv[i],(i<argc-1)? " " : " " );


printf(" ");


}


return 0;


}

输出结果如下图:




main(int argc,int *argv[])




...{


int i=argc;


printf("%d ",argc);


while(argc-->=0)




...{


printf("%s%s",argv[i--],(i>0)? " " : " ");


printf(" ");


}


}

结果如下图:



注意到没,按照argc的递增或者递减的顺序输出的参数不同。

摘抄一点别人的东西吧,呵呵

这是C语言中的命令行参数,所谓命令行参数,就是在DOS下执行命命令所需要的参数,我们
学习C语言的时候,一般都是编一些小程序,输出一些数据了等等,但是如果我们编制这样
一个程序,比如编制一个程序能把一个文件的内容追加到另外一个文件中,这样我们编的程
序就需要你提供命令的后面两个文件名(和命令一起称做命令行参数)

如这个程序叫做append使用时候(在dos下敲入如下命令)如下使用

如:append file1.c file2.c

就可以完成file1.c的,内容追加到file2.c中

那么几个字符串:append、file1.c和file2.c三个实参传给谁呢,这就需要在main()函数定
义一些形式参数用来接收这些实参

在命令行中输入的字符串的个数就存储在argc当中,三个字符串的内容存储char *a
rgv[]当中

这样在定义的时候主函数就定义为:

main(int argc,char *argv[])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: