美文网首页C语言&嵌入式
C语言main函数的两个参数(int argc和char *a

C语言main函数的两个参数(int argc和char *a

作者: Cache_wood | 来源:发表于2020-11-24 08:00 被阅读0次

命令行信息不仅对操作系统命令可用,它对所有程序都是可用的。为了能够访问这些命令行参数(C标准中称为程序参数),必须把main函数定义为含有两个参数的函数,这两个参数通常命名为argc和argv
int main(int argc,char *argv[])
{
……
}
argc("参数计数")是命令行参数的数量(包括程序名本身),argv("参数向量")是指向命令行参数的指针数组,这些命令行参数以字符串的形式存储。

argv[0[指向程序名,而从argv[1]到argv [argc-1]则指向余下的命令行参数。argv有一个附加元素,即argv [argc],这个元素始终是一个空指针。空指针是一种不指向任何地方的特殊指针。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>

#define ADD "add"
#define SUB "sub"
#define DIV "div"
#define MUL "mul"

int add(int,int);
int sub(int,int);
int divide(int,int);
int multiple(int,int);
int int_calculator(char *code,int,int);

int main(int argc, char *argv[])
{
    if(argc!=4)
    {
        printf("usage: %s operation_name int_a int_b\n",argv[0]);
        return -1;
    }
    else
    {
        int result=int_calculator(argv[1],atoi(argv[2]),atoi(argv[3]));
        printf("result of %s %s %s = %d\n",argv[2],argv[3],argv[1],result);
        return 0;
    }
}

int add(int a,int b){return a+b;}
int sub(int a,int b){return a-b;}
int divide(int a,int b){return a/b;}
int multiple(int a,int b){return a*b;}
int int_calculator(char *code,int a, int b)
{
    if(0==strcmp(code,ADD))
        return add(a,b);
    else if(0==strcmp(code,SUB))
        return sub(a,b);
    else if(0==strcmp(code,DIV))
        return divide(a,b);
    else if(0==strcmp(code,MUL))
        return multiple(a,b);
    else
        return -1;
}

这个程序使用main函数的两个参数实现了 四则运算,其中我们需要的参数是四个,如果参数多于或者少于4个,程序不会正常执行。

  1. 命令行环境编译gcc -o arg arg.c,生成可执行文件arg.exe
  2. 输入相对应的四个参数arg.exe add 2 3

    如果参数少于或多于4个

更多内容可参考
Windows在cmd命令行环境下运行c程序
C语言第11周作业(字符串和指针、数组)

相关文章

网友评论

    本文标题:C语言main函数的两个参数(int argc和char *a

    本文链接:https://www.haomeiwen.com/subject/wauuiktx.html