📄 main.cpp
字号:
#include <string>
#include <iostream>
#include "PostfixExpr.h"
using namespace std;
int main() {
int noErrors = 0;
cout << "表达式规格:\n"
<< "\t运算符可以包含+, -, *, /, ^以及()\n"
<< "\t所有运算符的结合性都是左结合,\n"
<< "\t\t即2^2^3==(2^2)^3==64而非2^(2^3)==256\n"
<< "\t操作数可以为数值也可以为变量, 变量在求值时会要求用户输入\n"
<< "\t表达式中可以含有空格, 也可以用;结尾\n"
<< "\t表达式不支持一元的+, -, 如+1-2, a-(-2)等\n"
<< "表达式举例:\n\t(A - 2*B) * C / 3 + D^2;\n"
<< endl;
while (true) try {
// 读入表达式
cout << "请输入一个表达式 (q或Q: 退出): " << flush;
string expr = getString();
if (expr == "q" || expr == "Q")
return noErrors;
// 转化为后缀表达式
PostfixExpr postfix(expr);
// 打印后缀表达式
cout << "后缀表达式为: \n\t";
postfix.print();
// 求值并打印
double val = postfix.eval();
cout << "表达式的值为: " << val << "\n\n" << endl;
} catch (const std::exception& e) {
cerr << "捕捉到异常!" << endl;
cerr << e.what() << endl;
++noErrors;
}
return noErrors;
} // main()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -