我的一个作业中有人要求我编写一个程序来进行命令行添加?
格式如下: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;
^
有人可以帮助我吗?谢谢高级。
答案 0 :(得分:1)
c=a atoi(argv[2]) b;
在语法上无效。你的编译器在这里很有用;确实学会仔细阅读错误。
您可以使用strcmp
将此参数值与"+"
,"-"
等进行比较。
if (!strcmp("+", argv[2])){
// plus operator
c = a + b;
} else {/*ToDo - other operators*/
}
另外,在访问元素之前,请不要忘记检查argv
的大小。这就是argc
给你的。