我学到了一些关于如何将参数传递给程序的知识。 当我们通过传递程序参数对数字进行加、减、乘、除 2 时,我的作业是找到结果。 我的代码在这里(我使用 Visual Studio 2017)
#include "stdafx.h"
#include <stdlib.h>
int main(int argc, char*argv[])
{
if (argc != 4) {
printf("Wrong argument !");
}
else {
int a = atoi(argv[1]);
int b = atoi(argv[3]);
if (argv[2][0] == '+') {
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}
if (argv[2][0] == '-') {
printf("%d - %d = %d\n", a, b, a - b);
return 0;
}
if (argv[2][0] == '*') {
printf("%d * %d = %d\n", a, b, a * b);
return 0;
}
if (argv[2][0] == '/') {
printf("%d / %d = %f\n", a, b, (float) a/ b);
return 0;
}
printf("No available operator!\n");
}
return 0;
}
当我传递参数 2 + 3 时。结果是 5。 当我传递错误的运算符时,例如 2 ^ 3。答案是“错误的论点!”。 我已经调试了几次程序,他们打印“No available operator!”,但它总是回到第一行并且无法结束程序。 你能解释一下这种情况吗?
最佳答案
我相信 CMD.exe
将 ^
视为在命令行中具有特殊含义的转义字符,所以我认为该字符甚至不会它到你的程序。
我会尝试通过:
myprogram.exe 2 ^^ 3
转义转义字符。
关于c++ - 一个带有传递参数的程序,为什么这个程序有错误的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563075/