您的位置:首页 > 大数据 > 人工智能

main函数的参数解析及实现整数计算器

2018-03-22 19:12 489 查看
main函数其实是有参数的

int main(int argc , char* argv[],char* envp[])
{
//代码片
}


这里有三个参数 :

第一个:argc是个整形变量,表示命令行参数的个数(含第一个参数,就是含.exe的字符)

第二个:argv是个字符指针的数组,每个元素是一个字符指针,指向一个字符串,这些字符串就是命令行中的每一个参数

第三个:envp是字符指针的数组,数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针

int main(int argc, char* argv[], char* envp[])
{
int i=0;
for(i=0; i<argc; i++)
{
printf("%s\n",argv[i]);
}
return 0;
}


这里的输出结果是可执行程序的.exe文件的路径

在argv数组的最后一个元素存放的是NULL,这是argv数组的结束标志

int main(int argc,char* argv[],char* envp[])
{
int i=0;
while(envp[i] != NULL)
{
printf("%s\n",envp[i]);
i++;
}
return 0;
}


在这里输出的结果是环境变量

envp数组的最后一个元素也存放的是NULL指针

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”加法“-s”减法“-m”乘法“-d”除法,后面两个参数 为操作数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int myadd(int x,int y)
{
return x+y;
}
int mysub(int x,int y)
{
return x-y;
}
int mymul(int x,int y)
{
return x*y;
}
int mydiv(int x,int y)
{
return x/y;
}
void usage(const char* proc)
{
printf("usage:\r\n\t%s[-a/-s/-m/-d]data1 data2\n",proc);
}
int main(int argc,char* argv[])
{
if(argc != 4)
{
usage(argv[0]);
return 1;
}
int res = 0;
if(strcmp(argv[],"-a")==0)
{
res=myadd[atoi(argv[2]),[atoi(argv[3])];
}
else if(strcmp(argv[],"-s")==0)
{
res=mysub[atoi(argv[2]),[atoi(argv[3])];
}
else if(strcmp(argv[],"-m")==0)
{
res=mymul[atoi(argv[2]),[atoi(argv[3])];
}
else if(strcmp(argv[],"-d")==0)
{
res=mydiv[atoi(argv[2]),[atoi(argv[3])];
}
else
{
usage(argv[0]);
return 1;
}
printf("result:%d\n",ret);
return 0;
}
//atoi 可以把字符转化成整形


如果有什么不对的地方,可以评论告诉我,望指导!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐