/* 字符串流 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为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)。 */

转载于:https://www.cnblogs.com/wwj9413/archive/2011/11/27/2292804.html

关于字符串流的学习(c++)相关推荐

  1. Java字符串流学习

    字符串流 定义:字符串流,以一个字符为数据源,来构造一个字符流. 作用:在Web开发中,我们经常要从服务器上获取数据,数据返回的格式通过一个字符串(XML.JSON),我们需要把这个字符串构造为一个字 ...

  2. java io流的学习总结~~

    java io流的学习总结~~ 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类, ...

  3. c++ 字符串流 sstream(常用于格式转换)

    原文地址:http://blog.163.com/zhuandi_h/blog/static/180270288201291710222975/ GDC注:今天在做<C++ Primer中文版第 ...

  4. Stream 流 【学习笔记】Java 基础

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 写这篇博客旨在制作笔记,方便个人在线阅览,巩固知识,无其他用途. 学习视频 [黑马 Java 基础教程] ...

  5. java jdk8 Stream流操作学习

    Stream流有一些特性: Stream流不是一种数据结构,不保存数据,它只是在原数据集上定义了一组操作. 这些操作是惰性的,即每当访问到流中的一个元素,才会在此元素上执行这一系列操作. Stream ...

  6. boost::math模块具有输出和输入方面以及字符串流的非有限示例

    boost::math模块具有输出和输入方面以及字符串流的非有限示例 实现功能 C++实现代码 实现功能 boost::math模块具有输出和输入方面以及字符串流的非有限示例 C++实现代码 #inc ...

  7. istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

     1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> u ...

  8. 文献记录(part67)--基于决策树模型重用的分布变化流数据学习

    学习笔记,仅供参考,有错必纠 关键词:机器学习 , 分布变化 , 流数据 , 模型重用 , 集成学习 , 动态环境 基于决策树模型重用的分布变化流数据学习 摘要 在很多真实应用中 , 数据以流的形式不 ...

  9. C++_IO类型_文件输入输出流_字符串流

    IO类型 iostream: 用于窗口的输入输出 fstream: 用于文件读写 sstream :读写存储在内存中的string对象 注:他们继承于istream与ostream,因此istream ...

最新文章

  1. 海思3559A上编译libyuv源码操作步骤
  2. FFmpeg中一个线程获取视频流一个线程执行scale测试代码
  3. 华人科学家在加拿大被区别对待,曾研究出埃博拉病毒治疗方法,Science刊文:同行震惊...
  4. Xcode8注释有时会失效的解决方法
  5. 玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest
  6. leetcode 141. 环形链表(快慢指针解法)
  7. Effective Java之返回零长度的数组或者集合,而不是null(四十三)
  8. 【JS 逆向百例】有道翻译接口参数逆向
  9. windows环境下,如何在Pycharm下安装TensorFlow环境
  10. linux 内网共享文件夹_局域网中实现linux文件共享
  11. Unexpected exception 'Cannot run program '的解决
  12. 超经典的Android开源项目
  13. MVC公司架构介绍——自运行任务
  14. 大前端时代安全性如何做
  15. python中类的使用_Python第九课-使用 类(class)创造新的数据类型!
  16. 修改flexorm支持字段大小
  17. c语言程序填空z=7,x=4,《C语言程序设计》复习题有答案
  18. Spring bean生命周期详解
  19. matplotlib添加字体、字体格式自定义
  20. Android 面试要点

热门文章

  1. codeforces 1045 D. Interstellar battle
  2. Laravel5.2目录结构及composer.json文件解析
  3. 最近处理的几个小问题_20160311
  4. HTML5实现刮奖效果
  5. MySQL数据库添加一个字段
  6. 2008年CCNA第二学期第九单元题目(2008-12-14 14:04:38)
  7. 通过日志恢复SQL Server的历史数据
  8. 光学镜头行业发展现状及趋势,智能手机应用领域占比最高
  9. YAFFS2文件系统在嵌入式LINUX系统中的应用
  10. 数字IC验证学习(二)