串流类就是能够控制字符串类型对象进行输入输出的类,C++不光可以支持C++风格的字符串流的控制,还可以支持C风格的字符串流控制。C中的字符串本质上是字符数组,字符数组内的数据在内存中的位置的排列是连续的,我们通常用char str[size]或者char* str的方式声明创建C风格字符数组,为了能让字符数组提供输入输出操作,C++引入了ostrstream istrstream strstream这三个类。
使用上面的三个类必须包含strstream.h头文件
istrstream类的构造函数:
istrstream::istrstream(const char* str,int size)
参数1表示字符串数组,而参数2表示数组大小,当size为0时,表示istrstream类对象直接连接到由str所指向的内存空间并以\0结尾的字符串.
#include <iostream>
#include <strstream>
using namespace std;
int main(){
char* name="www.jiaojiaoni.com";
int arraysize=strlen(name)+1;
istrstream is(name,arraysize);
char temp;
is>>temp;
cout<<temp<<endl;
}
ostrstream用于执行串流的输出,它的构造函数如下:
ostrstream::ostrstream(char* ptr,int streamsize,int Mode=ios::out)
第一个参数是字符数组,第二个参数是数组的大小,第三个参数是打开方式
#include <iostream>
#include <strstream>
using namespace std;
int main(){
int arraysize=1;
char* pbuffer=new char[arraysize];
ostrstream ostr(pbuffer,arraysize,ios::out);
ostr<<arraysize<<ends;//使用ostrstream输出到流对象的时候,要用ends结束字符串,否则会有溢出的危险
cout<<pbuffer;
delete []pbuffer;
}