C++中stringstream的使用方法和样例
原创 2016年11月06日 15:46:49
- 7427
之前在leetcode中进行string和int的转化时使用过istringstream,现在大致总结一下用法和测试用例。
介绍:C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
stringstream类同时可以支持C风格的串流的输入输出操作。
下图详细描述了几种类之间的继承关系:
istringstream是由一个string对象构造而来,从一个string对象读取字符。 ostringstream同样是有一个string对象构造而来,向一个string对象插入字符。stringstream则是用于C++风格的字符串的输入输出的。
#include <iostream>
#include <sstream>
using namespace std;int main(){
string str;getline(cin, str);
stringstream ss(str);
int i;
while(ss >> i){
cout << i << " "; //只用全是数字的字符串中才能读出连续的数字
}
cout << endl;getline(cin, str);
stringstream s2(str);
float f;
while(s2 >> f){
cout << f << " "; //只用全是数字的字符串中才能读出连续的数字
}
cout << endl; getline(cin, str);
stringstream s3(str);
string s;
while(s3 >> s){
cout << s << " "; //任意字符,因为任意字符都是字符串,以空格隔开,所以用于求单词的题目很简单
}
cout << endl;
return 0;
}
/*
输入: 1 2 3 4 5.5 6.6
输出: 1 2 3 4 5
输入: 1 2 3 4 5.5 6.6 a 7
输出: 1 2 3 4 5.5 6.6
输入: a b c d 12 dd
输出: a b c d 12 dd
*/