您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C十十 >> 辅导 >> 正文    
  C/C++中命令行参数的原理 【注册男护士专用博客】          

C/C++中命令行参数的原理

www.nanhushi.com     佚名   不详 

很早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: 

  copy c:\1.txt d:\ 

  在c/c++中,命令行参数的传递是利用main进行形参传递实现的 

  前面的教程中我们对面都进行了void main()或者是void main(void)的定义,这表示main不返回任何类型,和main不带有任何参数,但在缺剩状态下mian()这样形式下,形式参数一直是存在在栈空间内的只是隐藏了起来。 

  为了实现命令行参数我们将使用main(int argc,char* argv[])这样的形式进行定义argc和argv可以换成你自己喜欢的名称,不一定要用argv,argc这些形式只是习惯而已,char* argv[]我们前面已经讲述过,这就是一个指向指针数组,argv就是一个指针数组名,argv不是常量指针,而是具备变量特性的变量指针,它是可以移动的,由此我们可以改写成char* *argv也是正确的,int argc这个定义返回的将是参数的个数所以标记为整形(int)。 

  #include 
  #include 
  using namespace std; 
  void main(int argc,char* argv[]) 
  { 
   int i=0; 
   while(i   { 
   cout<<*argv++<   i++; 
   } 
   cin.get(); 
  } 

  在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以代码可以写成如下简单形式,简化代码提高效率。 

  #include 
  #include 
  using namespace std; 
  void main(int argc,char* argv[]) 
  { 
   while(*argv!=NULL)//这里写成while(*argv)也是正确的! 
   { 
   cout<<*argv++<   } 
   cin.get(); 
  } 

  最后我们说一下完整的命令行参数的原形:void main(int argc,char* argv[],char* env[]) 

  env用的很少,通常是用做事件的返回,这里就不讨论了,具体的可以查询书籍。 

  void main(int argc)省略其它参数的定义也是可以的,这样运行时候就直接返回参数个数学,而不返回其它。 

  运行命令行参数带有char* argv[]的时候,如果输入参数带有空格式,应该用双引号阔起来。 

  例如 test4.exe "hello world!" ha ha 

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。