一个计算四则表达式的模板
在9月8日那天我特意编写的,给大家分享的,sbsynk一个很方便的函数模板,可以并且只可以计算含括号的四则表达式
只有一个函数接口:int GetExpValue(_Tstream& istrin, _T& nReturn)
参数解释:.?,msr!Du
istrin: 一个输入流,可以是标准IO流,可以是文件流,也可以是串流
nReturn:用于接收计算结果的变量,计算所使用的类型由这个变量确定:zN6Sc)zS2E
返回值:t,e:q%r5}A ~H7{
返回非0表示计算成功,0表示计算失败有错误
KCKhD"?-]
程序代码:
r z F \ dL&U.U
namespace fy_Exp{
namespace {template <class _T>
inline _T GetExpValue(_T t[], char& csym){+c qq3b*M2YM
char c=csym; csym=0; G{"T!I3M
switch(c){
case '+':return t[0] += t[1];]T*r+v6K8N,R
case '-':return t[0] -= t[1];
case '*':return t[0] *= t[1];
default: return t[0] /= t[1];//case '/':"t)t%Pd"?7h9p6iug
}
}}C.I7x^uN p5q"|E*i
template <class _T, class _Tstream>
/* _Tstream: inputstream, _T: get return value%t/s+h8i@0g
* Return nonzero if get value successfully */!K G4T-ccIkN
int GetExpValue(_Tstream& istrin, _T& nReturn){