使用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.

时间: 2024-10-07 06:09:08

使用mian函数的命令行参数的相关文章

第33课 main函数与命令行参数

1. main函数的概念 (1)C语言中main函数称之为主函数 (2)一个程序是从main函数开始执行的 [编程实验]main函数的原型究竟是什么 //以下四个main函数都是合法的 //第1种 //main() //{ //} //第2种 //void main() //{ //} //第3种:——标准的入口函数 int main() { return 0; } //第3种:——标准的入口函数 //int main() //{ // //没写返回值 //} [思考]为什么编译器支持那么多种不

getopt_long函数解析命令行参数

转载:http://blog.csdn.net/hcx25909/article/details/7388750 每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用getopt来实现的. 在Linux下使用getopt写程序是一种比较cool的事情,下面来简单的介绍一下getopt的使用. === getopt使用 === 在讨论参数处理之前,我们先明确两个概念:选项.选项参数gcc -g -o test test.c我们经常使用上面的命令来编译程序,这里g和

C之main函数和命令行参数(三十)

我们知道在 C 语言中,程序是从 main 函数开始运行的,我们称其为主函数.我们来看看下面几种 main 函数定义正确吗? 那么 main 函数的原型到底是什么呢?我们来看看编译器怎么说,我们分别编译下四种 main 函数的形式,经过编译后,程序可以编译通过并且执行完成.那么最标准的 main 函数的原型是上面的第四种,main 函数是操作系统调用的函数,操作系统总是将 main 函数作为应用程序的开始并且将 main 函数的返回值作为应用程序的退出状态.那么 C 编译器为什么要支持这么多不同

main 函数argc , argv 主命令行参数

ARGc和ARGv中的ARG指的是"参数"(ARGuments, argument counter 和 argument vector ) 至少有两个参数至主函数:ARGc和ARGv: 首先是一个至算提供的参数到程序, 第二个是对字符串数组的指针. 基本作用: argc, argv 用命令行编译程序时有用. 主函数main中变量(int argc, char *argv[ ])的含义 有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++; main(int ar

在命令行上编译本机 C++ 程序以及传递命令行参数给主函数

1.首先,打开"开发人员命令提示" 2.创建一个新目录来保存你的程序. 在"开发人员命令提示"窗口中,输入 cd \ 命令,以将目录更改为驱动器根目录.(md:创建文件夹). 3.在命令提示处,输入 notepad hello.cpp(示例程序.) 4.在命令提示处,输入 cl /EHsc hello.cpp 来编译你的程序. cl.exe 编译器会生成包含已编译代码的 .obj 文件.然后运行链接器来创建名为 hello.exe 的可执行程序 5.若要运行 hel

命令行参数选项处理:getopt()及getopt_long()函数使用

在运行某个程序的时候,我们通常使用命令行参数来进行配置其行为.命令行选项和参数控制 UNIX 程序,告知它们如何动作.当 gcc的程序启动代码调用我们的入口函数 main(int argc,char *argv[]) 时,已经对命令行进行了处理.argc 参数包含程序参数的个数,而 argv 包含指向这些参数的指针数组. 程序的参数可以分为三种:选项,选项的关联值,非选项参数.例如: $gcc getopt_test.c -o testopt getopt_test.c是非选项参数,-o是选项,

getopt函数(分析命令行参数)

相关函数表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数.参数argc和argv是由main()传递的参数个数和内容.参数optstring 则代表欲处理的选项字符串.此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母.如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参

main函数——命令行参数与环境变量

main函数,是以C为基础开发平台的程序入口点,通常,我们写程序很少去关注函数main函数参数列表,而是简单给出下面这种情况. int main() {  system("pause");  return 0; } 打开MSDN,查看main函数, main( int argc, char *argv[ ], char *envp[ ] ){program-statements} 首先,我们先来看前两个参数,argc和 argv[ ],这两个主要是用来描述命令行参数的,但并不能说他们是

getopt函数的使用——分析命令行参数

getopt(分析命令行参数) getopt(分析命令行参数) 短参数的定义 返回值 范例 getopt_long 相关函数表头文件 #include<unistd.h> 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); 函数说明 getopt()用来分析命令行参数.参数argc和argv是由main()传递的参数个数和内容.参数optstring 则代表欲处理的选项字符串.此函数会返回在argv中下一