http://acm.nyist.net/JudgeOnline/problem.php?pid=128&前缀式计算

istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
	string str, line;
	while(getline(cin, line))
	{
		istringstream stream(line);
		while(stream>>str)
			cout<<str.c_str()<<endl;
	}	
	return 0;
}
#include<iostream>
#include<cstring>
#include<sstream>
#include<string> 
#include<cstdio>
using namespace std;
char s[505];
double exc(istringstream &iss)
{   char a[10];
    double res;
    iss>>a;
	cout<<a<<endl;
    switch(a[0])
    {  case '+':return exc(iss)+exc(iss);break;
       case '-':return exc(iss)-exc(iss);break;
       case '*':return exc(iss)*exc(iss);break;
       case '/':return exc(iss)/exc(iss);break;
       default :sscanf(a,"%lf",&res);
       return res;  
    }
}
int main()
{   double result;
    while(gets(s))
    {  istringstream iss(s);
       result=exc(iss);
       cout.precision(2);
       cout<<fixed<<result<<endl;
    }
    return 0;
}


你可能感兴趣的:(http://acm.nyist.net/JudgeOnline/problem.php?pid=128&前缀式计算)