C中的简单计算器,只有乘法运算符不起作用

时间:2017-01-05 05:59:25

标签: c

我已经开始学习C,并在"用户输入"有一个简单的使用命令行参数的示例计算器。当我在自己的机器上编写和编译它时,除了乘法(*)运算符之外的所有运算符( - ,+,/)都有效。尝试乘法时,只需在新行上显示命令提示符。有什么理由吗?这个例子可能是错的吗?这是:

#include <stdio.h>
int main (int argc, char *argv[])
{
  int arg1, arg2;
  if (argc == 4)
  {
    sscanf (argv[1], "%d", &arg1);
    sscanf (argv[3], "%d", &arg2);
    if (*argv[2] == '+') printf ("%d\n", arg1 + arg2);
    if (*argv[2] == '-') printf ("%d\n", arg1 - arg2);
    if (*argv[2] == '*') printf ("%d\n", arg1 * arg2);
    if (*argv[2] == '/') printf ("%d\n", arg1 / arg2);
  }
return 0;
}

1 个答案:

答案 0 :(得分:3)

如果您使用的是Unix Shell,则需要使用\ before *否则shell会将其理解为外卡字符。

$ ./yourapp 1 \* 1
1
祝你好运,快乐编码:)