【发布时间】: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