c++ 整形转换字符串例子

第一种情况:输出正常
#include <isotream>
#include <sstream>
#include <string>
using namespce std;
string intToString(int a)
{
 ostringstream ostr;
 ostr<<hex<<100;
 string str = ostr.str();
 cout<<str;
 return str;
}


第二种情况:输出有乱码
#include <isotream>
#include <sstream>
#include <string>
using namespce std;
string intToString(int a)
{
 ostrstream ostr;
 ostr<<hex<<100;
 string str = ostr.str();
 cout<<str;
 return str;
}
==========================================================================
ostrstream:是从ostream(输出流类)和strstreambase(字符串流基类)派生而来的
istrstream:是从istream(输入流类)和strstreambase(字符串流基类)派生而来的
strstream:是从iostream(输入输出流类)和strstreambase(字符串流基类)派生而来的
istrstream类用于执行c风格的串流的输入操作,也就是一字符串数组作为输入设备
ostrstream类用于执行c风格的串流的输入操作,也就是一字符串数组作为输入设备
strstream类用于执行c风格的串流输入输出操作。
ostringstream 
istringstream

在c++有两种字符串流,一种是在 sstream中定义,一种是在strstream中定义,他们的实现基本都一样。
strstream里包含:
class strstrambuf;
class istrstream
class ostrstream;
class strstream;
他们是基于c字符串char *编写的。
sstream中包含:
class istringstream
class ostringstream
class stringbuf
class stringstream
他们是基于std::string编写的
因此ostringstream::str()返回的是std::string类型的字符串,ostrstream::str()返回的是char *类型的字符串
在使用的时候要注意二者的区别。一般情况下推荐使用std::string类型的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值