您的位置:首页 > 其它

命令行变元的用法

2011-11-29 21:59 155 查看
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.如果你不这样输入的话,就会出现其他现象,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工具 windows 语言 存储 c