给定命令行参数-a 1 2
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int minus(int a, int b){
return a - b;
}
float mov(int a, int b)
{
return (float)a / b;
}
int mul(int a, int b)
{
return a*b;
}
int main(int argc, char* argv[], char *envp[])
{
int i = 0;
int ret = 0;
int a = atoi(*argv[2]); //将第二个参数的字符数字转换整型数字
int b = atoi(*argv[3]);
if (argc != 4){
printf("参数有误");
return 0;
}
switch (*(argv[1]+1)) //跳过第一个参数中‘-’,判断命令
{
case 'a':
ret=add(a,b);
break;
case 's':
ret = minus(a,b);
break;
case'm':
ret = mov(a,b);
break;
case'd':
ret = mul(a,b);
break;
default:
printf("第二个参数有问题");
break;
}
printf("%d", ret);
return 0;
}
//int main(int argc, char* argv[], char*envp[])
//{ //argc表示参数个数,argv数组存放参数首元素地址,envp存放环境变量
// int i = 0;
// for (i = 0; i < argc; i++)
// {
// printf("%s\n", argv[i]);
// }
//}