使用mian函数的命令行参数

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

#include <stdio.h>#include <assert.h>#include <string.h>enum JUDGE                { RIGHT, ERROR};int judge = RIGHT;           //设定了一个全局变量来区分数字‘0’和非法输入int _atoi(const char *str,int flag){ int num = 0; assert(str); while(*str) {  if((*str<='9')&&(*str>='0'))  {   int charct = flag?1:-1;   num = num*10+charct*(*str-'0');   if(((charct == 1)&&(num>0x7FFFFFFF)) || ((charct == -1)&&(num<0x80000000)))   {    num = 0;    break;   }   str++;  }  else  {   num = 0;   break;  } } if(*str == '\0') {  judge = RIGHT; } return num;}int my_atoi(const char *str){ int ret = 0; assert(str); if(*str != '\0') {  int flag = 1;  judge = ERROR;  if(*str == '+')  {   str++;  }  else if(*str == '-')  {   flag = 0;   str++;  }  if(*str != '\0')  {   ret = _atoi(str,flag);  } } return ret;}int main(int argc,char *argv[]){ int ret = 0; int num1 = my_atoi(argv[2]);       //分装了一个自己的函数,将输入的字符串转换成数字 int num2 = my_atoi(argv[3]); char option; if(strcmp(argv[1],"-a") == 0) {  option = '+';  ret = (num1) + (num2); } else if(strcmp(argv[1],"-s") == 0) {  option = '-';  ret = (num1) - (num2); } else if(strcmp(argv[1],"-m") == 0) {  option = '*';  ret = (num1) * (num2); } else if(strcmp(argv[1],"-d") == 0) {  option = '/';  ret = (num1) / (num2); } else {  printf("输入有误\n"); } printf("(%d) %c (%d) = %d\n",num1,option,num2,ret); return 0;}

main函数的参数形式一般为

int main(int argc,char *argv[])

argv是一个字符串指针数组,里面的首元素*arg[0]一般是文件名,后面的时输入的实参,argc是指参数的个数,包括文件名,所以argc的值不小于1.

本文出自 “敲完代码好睡觉zzz” 博客,请务必保留此出处http://2627lounuo.blog.51cto.com/10696599/1710289

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值