我正在尝试创建多个枚举,以便根据优先级快速比较已解析的标记。
这是我到目前为止在main.cpp中拥有的代码:
enum openParen0 : char { op = '(', ob = '[', oc = '{' };
enum closedParen0 : char { cp = ')', cb = ']', cc = '}' };
enum oper1 : char { plus = '+', minus = '-' };
enum oper2 : char { mult = '*', div = '/', mod = '%' };
openParen0 Open = op;
closedParen0 Closed = cp;
oper1 Operator1 = plus;
oper2 Operator2 = mult;
int problem, num1 = 5, num2 = 2;
problem = Open + num1 + Operator1 + num1 + Closed + Operator2 + num2;
cout << Open << num1 << " " << Operator1 << " " << num1 << Closed << " " << Operator2 << " " << num2 << " =" << endl;
cout << problem;
我只是想知道如何修改代码,以便根据枚举正确输出计算结果。我是这个概念的新手,所以我只是想了解它。
这是我得到的代码:
(5 + 5) * 2 =
178
显然,我期望是:
(5 + 5) * 2 =
20
谢谢。
[当您尝试使用cout<<op;
时,输出是与“(”]相对应的ASCII值>
类型char是一个整数类型,通常包含基本执行字符集的成员-默认情况下,在Microsoft C ++中为ASCII。
根据Doc:
类型
枚举器的基本类型;所有枚举数都相同基础类型。可以是任何整数类型。
就我而言,您不能直接枚举符号。