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; }