我有一个简单的命令提示符程序(例如,“a 1 + 2”打印 3),它运行完美,但无论我尝试什么,乘法符号(*)似乎无法从命令行正确转到程序。
函数是这样转换的
void math(int argc, char **argv) {
int result;
int first = atoi(argv[1]);
int second = atoi(argv[3]);
if(*argv[2] == '+') {
addition(first,second);
}
else if(*argv[2] == '-') {
subtraction(first,second);
}
else if(*argv[2] == '*') {
multiplication(first,second);
}
else{
printf("Syntax error \n");
}
并按此执行
addition (int first, int second){
printf("%d",first + second);
}
subtraction (int first, int second) {
printf("%d",first - second);
}
multiplication (int first, int second) {
printf("%d",first * second);
}
通过测试,例如将加法函数中的“+”号切换为“*”只是为了检查我是否犯了一些笨拙的错误,但事实似乎并非如此。尝试使用 * 符号进行用户输入会导致程序跳至我的“语法错误”else 子句。
最佳答案
您的 shell(或命令提示符)已执行 globbing ,在执行程序时转义 *
(使用引号或 \
)。
关于c - 我的 C 程序无法检测乘号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34144297/