一起来读书209- c++标准模板库编程实战:第九章 流操作

摘要

  • 流迭代器提供了哪些成员函数
  • 如何用流迭代器读写单独的数据项
  • 什么是刘缓冲区迭代器流及其与迭代器的差别
  • 如何使用流缓冲区迭代器读写文件
  • 如何用流迭代器读写文件
  • 什么是字符串流以及STL定义的不同类型的字符串流
  • 如何对字符串流使用流迭代器和流缓冲区迭代器

详情

流迭代器

输入流迭代器

istream_iterator对象有下面这些成员函数:

  • operator*()会返回一个流中当前对象的引用,可以运用这个运算符多次以重读相同的值.
  • operator->()会返回流中当前对象的地址.
  • operator++()会从底层输入六中读取一个值,并将它保存到一个迭代器对象中,返回一个迭代器对象的引用.
  • operator++(int)会从底层输入流读取一个值,并将它保存到一个迭代器对象中,为使用operator*()或operator->()访问做准备。
#include <iostream>
#include <iterator>
int main()
{

}
输出流迭代器

输出流迭代器是由ostream_iterator模板定义的,这个模板的第一个模板参数是被写值得类型,第二个模板参数是流中字符的类型;
ostream_iterator类型定义了下面这些成员函数:

  • 构造函数:第一个构造函数会用作为第一个参数的ostream对象的输出流生成一个开始迭代器,第二个参数是分隔符字符串。
  • operator=(const T& obj)会将obj写到流中,然后写分隔字符串,前提是在构造函数中指定了一个。
  • operator*()不做任何事,除了返回迭代器对象。
  • operator++()和operator++(int)都被定义了但不做任何事,除了返回迭代器对象.
#include <iostream>
#include <iterator>

对文件使用流迭代器

文件流类的模板

文件流打开状态:

  • binary:会将文件设置成二进制模式。如果没有设置二进制模式,默认的模式是文本模式。
  • app:在每个写操作(append operation)之前会移动到文件的末尾。
  • ate:会在打开文件之后(at the end),移到文件的末尾。
  • in:打开文件来读。对于ifstream和fstream来说,这是默认的。
  • out:打开文件来写。对于ostream和fstream来说,这是默认的。
  • trune:将当前存在的文件长度截断为0。
    用流迭代器进行文件输入:
todo

用流迭代器来反复读文件:

todo

用流迭代器输出文件:

todo

string流,流,以及流缓冲区迭代器

string流是表示内存中字符缓冲区中的I/O对象,是定义在sstream头文件中的3个模板中的一个模板实例:

  • basic_istringstream:支持从内存中的字符缓冲区去读数据
  • basic_ostringstream:支持写数据到内存中的字符缓冲区
  • basic_stringstream:支持字符缓冲区上的输入和输出操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值