14-stringstream

C++中stringstream的使用方法和样例

原创 2016年11月06日 15:46:49

  之前在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
*/

  

原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8631770.html