我已经学会了如何将参数传递给程序。 当我们通过传递程序参数来加,减,乘,除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.答案是“错误的参数!”。 我已经调试了几次程序,他们打印了“没有可用的操作员!”,但它总是回到第一行并且无法结束程序。 你能解释一下这种情况吗?
答案 0 :(得分:7)
我相信CMD.exe
将^
视为在命令行中具有特殊含义的转义字符,因此我认为该字符甚至不适合您的程序。
我会尝试传递:
myprogram.exe 2 ^^ 3
逃脱逃脱角色。