c - 我的 C 程序无法检测乘号

标签 c

我有一个简单的命令提示符程序(例如,“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/

相关文章:

c - 当打开文件并分配给 char 时,出现不兼容类型错误

c++ - 为什么 printf 和 isnan 不同意 long double 值是否为 NaN?

c++ - C 中的 * 和 & 有什么区别?

c - 如何使用 iso_c_binding 声明指针指针?

c - 非规范模式不适用于反引号

c++ - 在 Mac 上使用 C 或 C++ 进行 GUI 编程入门

c - GTK : wait for user input

c - 使用 MSP430 的 RNG/PRNG

c - 如何确定 C 中复合文字数组中有多少个元素?

objective-c - Objective-C 有闭包而 C 没有吗?