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旧吧?
======================================
嗯,是我说错了,用类模板处理的一般都是新的,呵呵