⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 一个我的数据结构解题集合
💻 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 + -