主题:关于c语言命令行变元的一个实例

 

这是用一个c语言程序,有关命令行变元。我对c语言命令行变元的用法和意义一直不太明白。这是一本书中的实例,但是我visual studio 2005编写调试时,虽然编译通过,但是出来的预想的不一样。在命令行变元这块我一直不太明白,希望有牛人能指点一下。帮我看看,这个程序到底要干嘛。在这先谢过。



// 006.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"stdlib.h"
#include"ctype.h"
#include"string.h"

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

void main(int argc,char *argv[])
{ int disp,count;
  argc=3;
  if(argc<2){ printf("You must enter the length of the count\n");
              printf("on the command line.try again\n");
              exit(1);/*非正常跳出程序*/}
  if(argc==3&&!strcmp(argv[2],"display"))disp=1;
  else disp=0;
  for(count=atoi(argv[1]);count;--count)if(disp)printf("%d\n",count);
  putchar('\a');/*将产生蜂鸣*/
  printf("Down");
  return;
}

请填写代码

 

作者:leanse      发表时间:2009-8-18 19:15:00

 1楼  

C语言和c++中的main命令行参数(命令行变元)是需要手动的输入的;
比如int main(int argc,char *argv[])中的argc表示命令行参数(命令行变元)的个数,而char *argv[]则存储命令行参数字符串,每个参数之间用空格隔开
一般情况下命令行参数(命令行变元)的第一个字符串即 argv[0] 是默认的这个程序的路径加上函数名;
比如你的程序在C盘个目录下的test.c  那么argv[0] = "C:\test.c";
而你手动输入的命令行参数则是 从argv[1]开始的,并且argc是根据你输入的字符串来统计数目的,一般不会赋值,比如你的程序中将 argc = 3;这是多余的,而且影响程序执行;
我针对你的程序在三个工具 turboc2.0  vc++6.0 和vs2008上分别执行过,都是没问题的;不过你的程序中要把 argc = 3 注释掉,这里没必要赋值,赋值反而出错的;
你的程序我少做了一下修改和注释;

#include <stdio.h>//如果用的是库函数的头文件,用<>最好,因为他首先查找库函数,执行会快
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

int _tmain(int argc, char* argv[])//这个函数完全没有什么用
{
    return 0;
}

void main(int argc,char *argv[])

    int disp,count;
    //argc = 3;//此处将argc 注释掉了,他没有用
    if(argc < 2)
    { 
        printf("You must enter the length of the count\n");
        printf("on the command line.try again\n");
        exit(1);/*非正常跳出程序*/
    }
    if(argc == 3 && !strcmp(argv[2],"display") ) 
         disp=1;
    else disp=0;
    for( count=atoi(argv[1]); count; --count)
        if(disp)printf("%d\n",count);
    putchar('\a');    /*将产生蜂鸣*/
    printf("Down");
    return;
}

上面基本上是你的源程序,
在VS里面输入命令行参数的办法是 
    在文件栏  项目 ---> xxx程序 属性 -----> 配置属性 ---->调试 ----->命令行参数(在本地windows调试器上啊)输入你要输入的参数即可

在vc++6.0 程序中 
     工具栏  工程---->设置----->调试 ---->程序变量  即可输入
在turboc2.0中 是在
   options ----> arguments 在这里输入即可


其实你的程序的意思是 
1.让你输入命令行参数,如果没有输入,就是argc = 1 就执行
        printf("You must enter the length of the count\n");
        printf("on the command line.try again\n");
        exit(1);/*非正常跳出程序*/
   这里如果你把exit(1)注释掉 就会看到输出的结果,就是没有输入;不注释就会立即结束

2.如果你输入的是123 display的话就正常执行了
3.如果你不这样输入的话,就会出现其他现象,你自己试试就好了

其实命令行参数不是很难的,你自己看一下吧!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值