VS运行时中英文括号问题

写了个简易计算器,发现一旦在调试器输入英文括号就没办法运行,但输入中文括号可以。代码的选择条件是英文括号,也有试过把中英文括号都纳入选择条件,但是英文的就是不行。想问一下这是为什么呀?

//设置优先级
void SetOperator() 
{
    a['+'] = add;
    a['-'] = add;
    a['*'] = multiple;
    a['/'] = multiple;
    a['('] = left_bracket;
}
//第二段部分代码
            if (c == ')' )//2,当前字符为右括号->连续弹出直到遇见左括号
            {
                while (!oper.empty() && oper.top() != '(' ) 
                {
                    Run(oper, dig);
                }
                if (oper.empty())throw"Error";
                oper.pop();//左括号出栈
            }
            else if (isOperator(c))//3,当前字符为操作符->弹栈计算后再入栈或直接入栈
            {
                //前一个运算符不是左括号、当前运算符优先级更小->先进行一次运算
                if(!oper.empty()&&oper.top() != '('&&a[c]<=a[oper.top()])
                {
                    Run(oper, dig);
                }
                oper.push(c);//入栈
            }
        }//二
        i++;
    }//while

img


img


img

img

说反了吧,你的代码里应该认的是英文的括号。
如果要同时中英文,可以两个思路,一个是输入的时候遇到中文,自动替换成英文
一个是判断 if (c == ')' ) 这里改为 if (c == ')' || c ==')') 别的类似