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

原创 2007年10月09日 16:10:00

         在支持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[])

027 命令行变元

/**********************027 命令行变元******************************** * 使用,命令行变元写一个小程序cuntdown。 程序对来自命令行...
  • btsyang
  • btsyang
  • 2015-02-11 14:38:34
  • 272

变元问题

1.程序:#includeint a=10;int b[a];int main(void){int a1=10;int b1[a1];    }结果:编译时出错:variable-size type ...
  • canye1984
  • canye1984
  • 2010-10-18 10:52:00
  • 629

27_命令行变元

//_27_命令行变元 //_27_main.cpp //命令行变元是操作系统命令中执行程序名字之后的信息 #include #include #include #include int...
  • wenjiashun
  • wenjiashun
  • 2014-08-08 13:29:06
  • 300

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

         在支持c语言的环境中,可以在程序开始执行时候将命令行变元或者参数传递给程序。调用主函数时,它可以带有两个变元。第一个变元(习惯上称作argc,用于变元计数)的值为程序执行时命令行中变...
  • wangjiaoni
  • wangjiaoni
  • 2007-10-09 16:10:00
  • 1702

命令行编译中的argc argv

在需要进行输入参数传递的函数中,我们经常可以见到int main(int argc ,char *argv[ ])这样的表达形式,argc ,argv这两个参数是什么呢?是系统的默认参数吗?查了一下资...
  • qq_27719649
  • qq_27719649
  • 2016-05-29 15:59:14
  • 249

程序命令行argc\argv

在一些程序中会看到这样的定义int main(int argc, char **argv) 或 int main(int argc, char *argv [])这样的写法在一些C\C++会经常看到...
  • keith_bb
  • keith_bb
  • 2016-10-25 22:13:22
  • 616

默认的函数变元

       在创建默认变元的函数时,只能指定一次默认值,而且必须在文件中第一次声明函数时。也可以在函数的定义中。       所有带默认参数的变元必须出现在不带默认参数变元的右边。       默认...
  • yanghangjun
  • yanghangjun
  • 2010-05-31 14:46:00
  • 429

awk命令

awk 用法:awk ' pattern {action} '   变量名 含义  ARGC 命令行变元个数  ARGV 命令行变元数组  FILENAME 当前输入文件名  FNR 当前文件中的记...
  • licongcong_0224
  • licongcong_0224
  • 2013-11-26 16:52:26
  • 1261

一个能把命令行解析为argc和argv数组的函数

int parse_cmdline (char *line, char ***argvp) {     char **argv = (char **)malloc (sizeof (char *));...
  • qiuchangyong
  • qiuchangyong
  • 2014-03-08 17:24:58
  • 848

控制台中解析用户输入的命令行参数(argc argv)

控制台中解析用户输入的命令行参数(argc argv) 分类: QT编程2011-01-26 11:02 556人阅读 评论(0) 收藏 举报 commandnullbufferc...
  • oMingZi12345678
  • oMingZi12345678
  • 2014-03-30 12:39:28
  • 1837
收藏助手
不良信息举报
您举报文章:命令行变元(argc,argv[])
举报原因:
原因补充:

(最多只允许输入30个字)