读书人

string stringbuf strstream stringst

发布时间: 2012-02-07 17:45:36 作者: rapoo

string stringbuf strstream stringstream 有什么区别?
这些类看起来很相似,能否说说区别和分别在什么情况下使用?
string stringbuf strstream stringstream

[解决办法]
strstream stringstream
两个版本,一老一新

[解决办法]
字符流stringstream

比如可以这样
stringstream str("2007 11 12");
string s;

str >> s;
cout <<s;//2007

str >> s;
cout <<s;//11

str >> s;
cout <<s;//12

当然也可以
int n;
str >> n;
....

[解决办法]
string 最常用了,在c++中代替c风格的字符串
如:
c中 char s[20]="1fhkjhksfjdkl";
c++中 string s("safsfafa");
[解决办法]

basic_iostream
帮助格式化或者翻译由流缓冲区控制的字符序列

basic_istream
帮助读取或者翻译由流缓冲区控制的序列输入

basic_istringstream
支持从内存中的数组读取 basic_string<charT,traits,Allocator> 类对象

basic_ofstream
支持写入命名文件或者其他与文件描述符关联的设备

basic_ostream
帮助格式化或者写入由流缓冲区控制的序列输出

basic_ostringstream
支持写入 basic_string<charT,traits,Allocator> 类的对象

basic_streambuf
用于派生便于字符序列控制的各种流缓冲区的抽象基类

basic_string
处理类似字符实体的模板化类

basic_stringbuf
将输入或者输出序列与任意字符序列关联

basic_stringstream
支持在内存中的数组中写入和读取 basic_string<charT,traits,Allocator> 类对象


[解决办法]
string是通过类模板basic_string用CHAR类型实例化的一个模板类,主要是用来处理字符串的
stringbuf通过类模板basic_stringbuf用CHAR类型实例化的一个模板类,主要是用来处理一些流的缓冲问题
strstream是在iostream这个输入输出流类派生出来的,主要是处理字符串流的
stringstream通过类模板basic_stringstream用CHAR类型实例化的一个模板类,这个功能与strstream差不多,有可能是飞所说的,是一个比较老的版本
[解决办法]
是的,
stringbuf, strstream 我是没有用过啊,
[解决办法]
strstream应该比stringstream旧吧?

======================================

嗯,是我说错了,用类模板处理的一般都是新的,呵呵

读书人网 >C++

热点推荐