c++如何从输入流中取出算式

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:03:07
我想将如下算式由用户输入,然后分别将数字和运算符存于double[]和char[]两个数组里,请问如何操作
1.2+3.4+(5*6)=
我用如下算法没办法解决(的输入。请高手指教!!
for(int j=0;j<100;j++)
{a[j]=0.0;b[j]='#';}
key=1;
double x;
char y;
while(true)
{
if(cin>>x) {a[key++]=x;cout<<x;}
else cin.putback(x);
if(cin>>y)
{
if(!(y=='='))
{b[key++]=y;cout<<y<<endl;}
if(y=='=') break;
}
else cin.putback(y);
}

for(int j=0;j<100;j++)
{a[j]=0.0;b[j]='#';}
key=1;
double x;
char y;
while(true)
{
if(cin>>x) {a[key++]=x;cout<<x;}
else cin.putback(x);
if(cin>>y) //这里错了!
{
if(!(y=='='))
{b[key++]=y;cout<<y<<endl;}
if(y=='=') break;
}
else cin.putback(y);
}

你的程序写得太乱了,根本不知道你要表达什么,你应该用值来转换成符号