当前位置: 代码迷 >> C语言 >> main()的参数
  详细解决方案

main()的参数

热度:481   发布时间:2007-02-27 16:30:14.0
main()的参数

我在CMD里面运行 argv a 结果是实现 getch();的功能
main(int argc,char *argv[])
{
if(argv[1]=='0')
{
printf("You don\'t input any argument!");
}
else
{
switch(argv[1])
{
case 'a': printf("The argument is \"a\"");break;
case 'b': printf("The argument is \"b\"");break;
case 'c': printf("The argument is \"c\"");break;
case 'd': printf("The argument is \"d\"");break;
case 'e': printf("The argument is \"e\"");break;
case 'f': printf("The argument is \"f\"");break;
case 'g': printf("The argument is \"g\"");break;
case 'h': printf("The argument is \"h\"");break;
}
}

getch();
}

搜索更多相关的解决方案: main  argument  The  break  

----------------解决方案--------------------------------------------------------

switch(argv[1])
改成
switch(*argv[1])

就正常了

因为main的第二个参数是一个字符串数组
也就是说argv[1]是个指针
*argv[1]才是他指向的字符串的第一个字符
----------------解决方案--------------------------------------------------------
以下是引用田里兵蜂在2007-2-27 16:41:54的发言:

switch(argv[1])
改成
switch(*argv[1])

就正常了

因为main的第二个参数是一个字符串数组
也就是说argv[1]是个指针
*argv[1]才是他指向的字符串的第一个字符

可以了 但是 下面这个功能没有实现 (就是没有输入参数)
if(*argv[1]=='0')
{
printf("You don\'t input any argument!");
}


----------------解决方案--------------------------------------------------------

我在CMD里面运行 argv a 结果是实现 getch();的功能
main(int argc,char *argv[])
{
if(argv[1]=='0')
{
printf("You don\'t input any argument!");
}
else
{
switch(argv[1])
{
case 'a': printf("The argument is \"a\"");break;
case 'b': printf("The argument is \"b\"");break;
case 'c': printf("The argument is \"c\"");break;
case 'd': printf("The argument is \"d\"");break;
case 'e': printf("The argument is \"e\"");break;
case 'f': printf("The argument is \"f\"");break;
case 'g': printf("The argument is \"g\"");break;
case 'h': printf("The argument is \"h\"");break;
}
}

getch();
}

还有就是,上面红色的代码有逻辑错误,不知是你写错了,还是老谭的书有问题.
main的第一个参数是一个int型,表示传入的字符串个数
正确的应该是
if (argc==1)
因为argc不会为0,系统会自动传入程序路径字符串,保存在argv[0]中
所以你在CMD下运行程序时不带字符串, argc的值也为1

[此贴子已经被作者于2007-2-27 17:20:27编辑过]


----------------解决方案--------------------------------------------------------

我想表示的是当参数为空的时候就输入You don't input any argument!
应该要怎么实现
if(*argv[1]=='0')
{
printf("You don\'t input any argument!");
}


----------------解决方案--------------------------------------------------------
改成
if(argc==1)
{
printf("You don\'t input any argument!");
}

看下我上面的说明吧,已经很清楚啦


----------------解决方案--------------------------------------------------------
以下是引用zerocn在2007-2-27 17:16:07的发言:

我想表示的是当参数为空的时候就输入You don't input any argument!
应该要怎么实现
if(*argv[1]=='0')
{
printf("You don\'t input any argument!");
}

输入0就可以,因为这’0‘是字符,'\0'与'0'是两回事。
----------------解决方案--------------------------------------------------------

  相关解决方案