码迷,mamicode.com
首页 > 其他好文 > 详细

stringstream中的.clear()和.str()

时间:2015-02-08 09:07:34      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

在C++中可以使用stringstream来很方便的进行类型转换,字符串串接,不过注意重复使用同一个stringstream对象时要先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真正清空内容需要使用.str(“”)方法。

.str(“”)方法可以清楚缓存,但是,需要重复使用同一个stringstream对象时,得先用.str(“”)方法清楚缓存,再用.clear()方法重设状态,否则对stringstream对象的操作是无效的。

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
	stringstream stream;
	stream<<"123";
	int n;
	stream>>n;
	cout<<n<<endl;
	//stream.str("");
	stream.clear();
	stream<<"de";
	string s;
	stream>>s;
	cout<<s;
	return 0;
}

输出结果:

技术分享

而不用.str(“”)方法,只用.clear()方法,可以得到同上的结果,但是这是很危险的,极有可能耗尽全部内存。

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
	stringstream stream;
	stream<<"123";
	int n;
	stream>>n;
	cout<<n<<endl;
	stream.str("");
	//stream.clear();
	stream<<"de";
	string s;
	stream>>s;
	cout<<s;
	return 0;
}

技术分享

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
	stringstream stream;
	stream<<"123";
	int n;
	stream>>n;
	cout<<n<<endl;
	//stream.str("");
	//stream.clear();
	stream<<"de";
	string s;
	stream>>s;
	cout<<s;
	return 0;
}

技术分享





stringstream中的.clear()和.str()

标签:

原文地址:http://blog.csdn.net/yinqiaohua/article/details/43613825

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!