【问题标题】:Simple calculator in C, Only the multiplication operator doesn't work [duplicate]C中的简单计算器,只有乘法运算符不起作用[重复]
【发布时间】:2017-01-05 05:59:24
【问题描述】:

我已经开始学习 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;
}

【问题讨论】:

  • 啊,这是 Windows 与 Linux 的问题。使用./a.out 2 \* 3 防止* 扩展到当前目录下的所有文件。

标签: c


【解决方案1】:

如果您使用的是 Unix Shell,则需要在 * 之前使用 \,否则 Shell 会将其理解为通配符。

$ ./yourapp 1 \* 1
1

祝你好运,编码愉快:)

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    相关资源
    最近更新 更多