我在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();
}
----------------解决方案--------------------------------------------------------
把
switch(argv[1])
改成
switch(*argv[1])
就正常了
因为main的第二个参数是一个字符串数组
也就是说argv[1]是个指针
*argv[1]才是他指向的字符串的第一个字符
----------------解决方案--------------------------------------------------------
把
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!");
}
看下我上面的说明吧,已经很清楚啦
----------------解决方案--------------------------------------------------------
我想表示的是当参数为空的时候就输入You don't input any argument!
应该要怎么实现
if(*argv[1]=='0')
{
printf("You don\'t input any argument!");
}
输入0就可以,因为这’0‘是字符,'\0'与'0'是两回事。
----------------解决方案--------------------------------------------------------