STL加流上倒退

P1449 后缀表达式

乌拉 @ 2017-10-25 16:30:10

奇技淫巧++

#include<bits/stdc++.h>
using namespace std;
int a,p,q,r;
char t;
stack <int> st;
int main()
{
    while(1)
    {
        cin>>t;
        if(t=='@') break;else cin.putback(t);
        cin>>a;
        st.push(a);
        cin>>t;
        if(t=='@') break;
        if(t=='.') cin>>t;
        while ((t<='0'||t>='9')&&t!='@')
        {
        q=st.top();st.pop();
        p=st.top();st.pop();
        switch(t)
        {
            case'+':r=p+q;break;
            case'-':r=p-q;break;
            case'*':r=p*q;break;
            case'/':r=p/q;break;
        }
        st.push(r);
        cin>>t;
        }
        cin.putback(t);
    }
    cout<<st.top();
    return 0;
}

by aiyougege @ 2017-10-25 16:34:38

太强大了,是怎么实现的


by aiyougege @ 2017-10-25 16:35:55

就是那个putback


by hjfzzm @ 2017-10-25 17:26:16

这个太厉害了,学习了,又是输入输出流的问题......


by UKE开车自动机 @ 2017-10-25 20:06:24


by Ash1mar @ 2017-11-03 16:00:07

@hjfzzm 没看懂这是什么操作。。。能稍微解释下吗


|