default:
{nLevel=0x100; nERR=1;}
}
if(nLevel==0x100)break;
if(nLevel&0x10 || istrin>>t[2]){
nLevel &= 0xF;
if(nLevel==1){t[1]=t[2];csym[1]=0;continue;}
if(csym[1]=='*'||csym[1]=='/'){
GetExpValue(t+1, csym[1]);
}
else{
GetExpValue(t, csym[0]);
t[1]=t[2];csym[0]=csym[1];csym[1]=0;
}
nLevel = 1;
}
else istrin.clear();
}
else{nERR = -1; break;}
}
if(csym[1])t[2]=0,nReturn=GetExpValue(t+1, csym[1]);
else nReturn=GetExpValue(t, csym[0]);
return nERR==-1?1:0;
}}
函数模板使用示例:
在以上那段代码的后面加上以下代码:
以下是引用片段:
程序代码:
#include
#include
#include
using namespace std;
int main(void)
{
string s1;
while(cin>>s1)
{
istrstream isin(s1.data());
double d;
if(fy_Exp::GetExpValue(isin, d))