我有一个简单的命令提示程序(例如,"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,*
当你执行你的程序时使用引号(或带引号或\
).