如何从c中的命令行参数中获取运算符?

时间:2016-02-23 09:40:53

标签: c

我的一个作业中有人要求我编写一个程序来进行命令行添加?

格式如下:excutablefile firstoperand opertator secondoperand 例如:./a.out 1 + 3 结果:4

#include<stdio.h>

int main(int argc,char **argv)
{
    int a,b,c;
    a=atoi(argv[1]);
    b=atoi(argv[3]);
    c=a atoi(argv[2]) b;
    printf("%d",c);
    return 0; 
}

当我编译它时,我得到这样的错误

embedded@Embedded-boo-N5010:~$ cc command.c 
command.c: In function ‘main’:
command.c:7:8: error: expected ‘;’ before ‘atoi’
c=a atoi(argv[2]) b;
    ^

有人可以帮助我吗?谢谢高级。

1 个答案:

答案 0 :(得分:1)

c=a atoi(argv[2]) b;在语法上无效。你的编译器在这里很有用;确实学会仔细阅读错误。

可以使用strcmp将此参数值与"+""-"等进行比较。

if (!strcmp("+", argv[2])){
    // plus operator
    c = a + b;
} else {/*ToDo - other operators*/

}

另外,在访问元素之前,请不要忘记检查argv大小。这就是argc给你的。