关于字符串流的学习(c++)
2011-11-27 21:39
197 查看
/* 字符串流 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为ASCII代码,然后存放在缓冲区,再从缓冲区送到字符数组。从字符数组读数据时,先将字符数组中的数据送到缓冲区,在赋给变量前要先将ASCII代码转换为二进制形式。总之,流缓冲区中的数据格式与字符数组相同。 文件流类有ifstream,ofstream和fstream,而字符串流类有istrstream,ostrstream和strstream。文件流类和字符串流类都是ostream,istream和iostream类的派生类,因此对它们的操作方法是基本相同的。向内存中的一个字符数组写数据就如同向文件写数据一样,但有点不同: (1) 输出时数据不是流向外存文件,而是流向内存中的一个存储空间。输入时从内存中的存储空间读取数据。 (2) 字符串流对象关联的不是文件,而是内存中的一个字符数组,因此不需要打开和关闭文件。 (3) 每个文件的最后都有一个文件结束符,表示文件的结束。而字符串流所关联的字符数组中没有相应的结束标志,用户要指定一个特殊字符作为结束符,在向字符数组写入全部数据后要写入此字符。 字符串流类没有open成员函数,因此要在建立字符串流对象时通过给定参数来确立字符串流与字符数组的关联。即通过调用构造函数来解决此问题。建立字符串流对象的方法与含义如下: 1. 建立输出字符串流对象 ostrstream类提供的构造函数的原型为 ostrstream::ostrstream(char *buffer,int n,int mode=ios::out); buffer是指向字符数组首元素的指针,n为指定的流缓冲区的大小(一般选与字符数组的大小相同,也可以不同),第个参数是可选的,默认为ios::out方式。可以用以下语句建立输出字符串流对象并与字符数组建立关联: ostrstream strout(ch1,20); 作用是建立输出字符串流对象strout,并使strout与字符数组ch1关联(通过字符串流将数据输出到字符数组ch1),流缓冲区大小为。 2. 建立输入字符串流对象 istrstream类提供了两个带参的构造函数,原型为 istrstream::istrstream(char *buffer); istrstream::istrstream(char *buffer,int n); buffer是指向字符数组首元素的指针,用它来初始化流对象(使流对象与字符数组建立关联)。可以用以下语句建立输入字符串流对象: istrstream strin(ch2); 作用是建立输入字符串流对象strin,将字符数组ch2中的全部数据作为输入字符串流的内容。 istrstream strin(ch2,20); 流缓冲区大小为,因此只将字符数组ch2中的前个字符作为输入字符串流的内容。 3. 建立输入输出字符串流对象 strstream类提供的构造函数的原型为 strstream::strstream(char *buffer,int n,int mode); 可以用以下语句建立输入输出字符串流对象: strstream strio(ch3,sizeof(ch3),ios::in|ios::out); 作用是建立输入输出字符串流对象,以字符数组ch3为输入输出对象,流缓冲区大小与数组ch3相同。 以上个字符串流类是在头文件strstream中定义的,因此程序中在用到istrstream, ostrstream和strstream类时应包含头文件strstream(在GCC中,用头文件strstream)。 */
相关文章推荐
- 关于字符串流的学习(c++)
- 关于字符串流的学习(c++)
- C++ 学习之字符串流
- [C++ Primer Plus]学习笔记--关于C++ string和c类型字符数组的对比
- [日常学习][C++]字符串流 <sstream>
- C++学习笔记之字符函数库cctype
- [C++STDlib基础]关于单字符的操作——C++标准库头文件<cctype>
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C++中关于类型转换的学习记录
- C++中关于打印一些字符图形的循环代码
- 关于C++学习之书籍选择篇
- Kingofark关于学习C++和编程的50个观点2003修订版
- 【C++基础学习】关于C++静态数据成员
- C++ 关于static variables的学习中遇到的问题总结
- 【C++学习笔记】宽字符(LPCWTR/wstring)和(char*/string)的转换实现
- c++中关于字符重载
- c++学习之-- 关于继承和派生
- 关于学习C/C++的几点理解
- c++ 字符串流 sstream(常用于格式转换)
- 《Windows Via C/C++》边学习,边翻译(二)操作字符和字符串-1