《C++计算四则表达式的.docx》由会员分享,可在线阅读,更多相关《C++计算四则表达式的.docx(4页珍藏版)》请在金锄头文库上搜索。
1、 C+计算四则表达式的参数解释: istrin: 一个输入流,可以是标准IO流,可以是文件流,也可以是串流 nReturn:用于接收计算结果的变量,计算所使用的类型由这个变量确定 返回值: 返回非0表示计算胜利,0表示计算失败有错误 程序代码: 以下是引用片段: namespace fy_Expnamespace templateinline _T GetExpValue(_T t, char csym=0;switch(c)case ”+”:return t0 += t1;case ”-”:return t0 -= t1;case ”*”:return t0 *= t1;default: r
2、eturn t0 /= t1;/case ”/”:template/* _Tstream: inputstream, _T: get return value* Return nonzero if get value successfully */int GetExpValue(_Tstream /雨中飞燕之作char csym3 = “+“;int nLevel = 1, nERR = 0;if(!(istrint1)istrin.clear();for(;)if(istrincsym2)switch(csym2)case ”(”:if(!csym1)nLevel=0x100; nERR=1
3、;elseif(!GetExpValue(istrin, t2)nLevel|=0x10;elsenLevel=0x100; nERR=1;break;case ”)”:nLevel = 0x100;break;case ”+”:case ”-”:case ”*”:case ”/”:csymnLevel+ = csym2;break;case ” ”:case ”r”:case ”n”:case ”t”:continue;default:nLevel=0x100; nERR=1;if(nLevel=0x100)break;if(nLevelif(nLevel=1)t1=t2;csym1=0;continue;if(csym1=”*”|csym1=”/”)GetExpValue(t+1, csym1);elseGetExpValue(t, csym0);t1=t2;csym0=csym1;csym1=0;nLevel = 1;else istrin.clear();elsenERR = -1; break;if(csym1)t2=0,nReturn=GetExpValue(t+1, csym1);else nReturn=GetExpValue(t, csym0);return nERR=-1?1:0;