【发布时间】:2018-09-08 19:48:10
【问题描述】:
我学到了一些关于如何将参数传递给程序的知识。 我的作业是当我们通过传递程序参数来加、减、乘、除 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!”,但它总是回到第一行并且无法结束程序。 你能给我解释一下这种情况吗?
【问题讨论】:
-
当想要的操作是'除'时,一定要检查变量'b'不为0
标签: c++ c visual-studio arguments parameter-passing