用c语言编写四则混合运算的简易计算器

来源:百度知道 编辑:UC知道 时间:2024/05/27 07:40:57
支持小括号运算,简单的四则混合运算,用c语言

#include <cstdio>
#include <ctype.h>

struct eoe {
FILE* fp;
char token;
eoe() { fp = stdin; }
eoe(FILE* p) { fp = p; }
inline void getToken();
inline int exp();
inline int term();
inline int factor();
inline int result();
};

void eoe::getToken() {
while (1) {
token = fgetc(fp);
if (token == EOF || token == ';' || token == '=') {
token = 0; break;
} else if (!isspace(token)) break;
}
}

int eoe::exp() {
int t = term();
while (1) {
if (token == '+') getToken(), t += term();
else if (token == '-') getToken(), t -= term();
else break;
} return t;
}

int eoe::term() {
int t = factor();
while (1) {
if (token == '*') getToken(), t *= term();
else if (token == '/') getToken(), t /= term();
else break;
}