c++中使用串流时头文件strstream 和sstream有什么区别吗,两个头文件在其他方面又有
c++中使用串流时头文件strstream和sstream有什么区别吗,两个头文件在其他方面又有什么区别...
c++中使用串流时头文件strstream 和sstream有什么区别吗,两个头文件在其他方面又有什么区别
展开
2个回答
展开全部
<sstream> 中istringstream,ostringstream,stringstream
<strstream> 中istrstream,ostrstream,strstream
1、sstream所定义的类型用于读写存储在内存中的string对象
istringstream从string对象中读取,由istream派生而来
ostringstream写到string对象中去,由ostream派生而来
stringstream对string对象进行读写,由iostream派生而来
2、istrstream类用于执行C风格的串流的输入操作,也就是以字符串数组作为输入设备。
ostrstream类用于执行C风格的串流的输出操作,也就是一字符串数组作为输出设备。
strstream类同时可以支持C风格的串流的输入输出操作。
并且strstream里的东西已经被c++标准明确标明为“不要再使用”
3、istrstream不会自己释放内存,也就是如果你不调用freeze(false),在析构函数中内存是不会释放的。并且istrstream处理中文也会有问题 。
<strstream> 中istrstream,ostrstream,strstream
1、sstream所定义的类型用于读写存储在内存中的string对象
istringstream从string对象中读取,由istream派生而来
ostringstream写到string对象中去,由ostream派生而来
stringstream对string对象进行读写,由iostream派生而来
2、istrstream类用于执行C风格的串流的输入操作,也就是以字符串数组作为输入设备。
ostrstream类用于执行C风格的串流的输出操作,也就是一字符串数组作为输出设备。
strstream类同时可以支持C风格的串流的输入输出操作。
并且strstream里的东西已经被c++标准明确标明为“不要再使用”
3、istrstream不会自己释放内存,也就是如果你不调用freeze(false),在析构函数中内存是不会释放的。并且istrstream处理中文也会有问题 。
展开全部
在C++有两种字符串流,一种在sstream中定义,
另一种在strstream中定义。
它们实现的东西基本一样。
strstream里包含
class strstreambuf;
class istrstream;
class ostrstream;
class strstream;
它们是基于C类型字符串char*编写的
sstream中包含
class istringstream;
class ostringstream;
class stringbuf;
class stringstream;
class …….
它们是基于std::string编写的
因此ostrstream::str()返回的是char*类型的字符串
而ostringstream::str()返回的是std::string类型的字符串
在使用的时候要注意到二者的区别,一般情况下推荐使用std::string类型的字符串
当然如果为了保持和C的兼容,使用strstream也是不错的选择
另一种在strstream中定义。
它们实现的东西基本一样。
strstream里包含
class strstreambuf;
class istrstream;
class ostrstream;
class strstream;
它们是基于C类型字符串char*编写的
sstream中包含
class istringstream;
class ostringstream;
class stringbuf;
class stringstream;
class …….
它们是基于std::string编写的
因此ostrstream::str()返回的是char*类型的字符串
而ostringstream::str()返回的是std::string类型的字符串
在使用的时候要注意到二者的区别,一般情况下推荐使用std::string类型的字符串
当然如果为了保持和C的兼容,使用strstream也是不错的选择
追问
基于std::string编写的为什么返回char*类型的
追答
std::string的底层实现还是char*的操作
只不过是被封装了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询