C++ stringstream的小结

  stringstream是继承stream来的,stringstream的功能类似于C 语言中的sprintf(), sscanf()这两个函数,即可以方便的实现数据类型和string类型之间的转换;

  使用stringstream需要包含的头文件是<sstream>;

 有意思的一点就是stringstream的重复使用问题,在重复使用之前需要调用一次它的clear()函数,这个问题,我更愿意去从它继承了stream这个角度去思考,stream在读文件结束或者遇到错误时,内部的流状态被置为错误,后续再读取流中的数据是失败的,使用clear即可以恢复到正常的状态;在下面的博客中就介绍了clear这个用法

搜索一下,发现一篇很详细的关于stringstream的用法介绍,网址就贴在这里了:

http://www.cppblog.com/Sandywin/archive/2007/07/13/27984.html


int test()
{
string tempStr;
int i,j;
while (getline(cin, tempStr))
{
stringstream strStream;
strStream.str(tempStr);
cout << strStream.str() << endl;
if (strStream >> i >> j)       //通过判断返回的流状态是否正常来确定是否读取数据成功
{
cout << "strStream status is:" << strStream.good() << " i:" << i << " j:" << j << endl;
}
else
{
cout << "stringstream error" << endl;
}

}


return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值