C++ 头文件系列(fstream)
1. 简介
该头文定义了与文件箱关联的流类的4个模版:
- basic_filebuf
- basic_ifstream
- basic_ofstream
- basic_fstream
和8个类型:
- filebuf
- ifstream
- ofstream
- fstream
- wfilebuf
- wifstream
- wofstream
- wfstream
2. basic_filebuf模版

该模版继承自basic_streambuf,同时将输入流与输出流与文件相关联,它的作用与basic_stringbuf是相似的。 因为继承自可重用的基类,它自身只定义了有限的公有函数和虚函数(虚函数不再赘述)。
2.1 公有函数
- open : 打开文件并关联。
- close : 关闭文件并取消关联。
- is_open : 检测先前是否顺利打开了文件。
- operator =(移动语义) : 移动语义的赋值运算符。
- swap : 交换两个对象内容。
2.2 全局模版函数
- swap : 基本上每个标准类都回提供swap的两种形式:成员函数 和 全局模版。
3. 基于文件的流类模版
- basic_ifstream内部使用bsaic_filebuf来控制刘序列,它继承自basic_istream。
- basic_ofstream内部使用bsaic_filebuf来控制刘序列,它继承自basic_ostream。
- basic_fstream内部使用bsaic_filebuf来控制刘序列,它继承自basic_iostream。
同样是由于继承可重用基类的缘故,这些类模版本身也都只定义了几个公有函数。
3.1 公有函数
- open : 打开文件并关联。
- close : 关闭文件并取消关联。
- is_open : 检测先前是否顺利打开了文件。
- rdbuf : 返回内部的basic_stringbuf对象指针。
- operator = (移动语义)
- swap
3.2 全局模版函数
- swap
4 typedefs
typedef basic_ifstream< char > ifstream;typedef basic_ofstream< char > ofstream;typedef basic_fstream< char > fstream;typedef basic_filebuf< char > filebuf;typedef basic_ifstream< wchar_t > wifstream;typedef basic_ofstream< wchar_t > wofstream;typedef basic_fstream< wchar_t > wfstream;typedef basic_filebuf< wchar_t > wfilebuf;
C++ 头文件系列(fstream)的更多相关文章
- C++ 头文件系列(array)
注意,该头文件仅在C++11中标准才开始出现. 简介 与语言内置的数组一样, array类模版支持几乎所有内置数组包含的特性: 顺序的(sequence) 内存连续的(contiguous stora ...
- C++ 头文件系列(queue)
简介 这个头文件定义了两个跟队列有关的类----quque.priority_queue,分别实现的是队列 和 优先队列这两个概念. 但是与这两个类模版与其它类模版(vector.array等)最大的 ...
- C++ 头文件系列(stack)
简介 该头文件只含有一个类模版stack, 它实现栈的概念,是一个容器适配器(说实话,在写这篇随笔之前我都不知道有这么个类模版). 栈 栈只有一个重要的特性: LIFO(last-in first-o ...
- C++ 头文件系列(vector)
简介 vector头文件包含vector的类模版以及该模版的显示特化版本vector< bool >. vector是C++容器库中非常通用的一种容器,如果你不知道该决定使用哪一种容器,或 ...
- C++ 头文件系列(map)
简介 该头文件包含两个概念相似的容器----map.multimap. 而这两个容器反映的概念就是 映射. 这两个容器 相同 的属性有: 关联性 映射 动态增长 键(Key)唯一性 这两个不相同的属性 ...
- C++ 头文件系列(unordered_map、unordered_set)
简介 很明显,这两个头文件分别是map.set头文件对应的unordered版本. 所以它们有一个重要的性质就是: 乱序 如何乱序 这个unorder暗示着,这两个头文件中类的底层实现----Hash ...
- C++ 头文件系列(iterator)
简介 该头文件围绕迭代器展开,定义了一系列与迭代器有关的概念,但最最最重要的一点就是----它和其它容器一起实现了C++容器的Iterator设计模式. Iterators are a general ...
- C++ 头文件系列 (algorithm)
简介 algorithm头文件是C++的标准算法库,它主要应用在容器上. 因为所有的算法都是通过迭代器进行操作的,所以算法的运算实际上是和具体的数据结构相分离的 ,也就是说,具有低耦合性. 因此,任何 ...
- C++ 头文件系列 (bitset)
简介 该头文件有关位集,实际上是vector 位 位本质上对应bool的概念,只有0或1,true或false两种对立的值. 但很可惜,字节才是机器上最小的存储单元,所以bool基本上是由一个字节大小 ...
随机推荐
- IOS即时通讯XMPP搭建openfire服务器
一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...
- Delphi 常用函数(数学函数)round、trunc、ceil和floor
源:Delphi 常用函数(数学函数)round.trunc.ceil和floor Delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里 ...
- mongodb学习(六)索引
准备工作: 先插入100万条数据 for(i=0;i<=1000000;i++){ db.users.insert({ "i":i, "username" ...
- IOS开发-UI学习-使用代码创建button
使用代码创建button分5个步骤,分别是: 1.定义一个按钮,根据定义位置不同可定义为局部变量或者全局变量: 2.初始化按钮,一般使用一个矩形初始化: 3.设置按钮控件的其他属性,如背景图片,或者背 ...
- 【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类
内部类: 1.定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规 ...
- driver_register()函数解析
driver_register()函数解析 /** * driver_register - register driver with bus * @drv: driver to register * ...
- composer 安装和修改中国镜像
参考:http://docs.phpcomposer.com/00-intro.html#Using-Composer http://www.phpcomposer.com/ 下载安装 下载并且运行 ...
- Python计算一个项目中含有的代码行数
最近想要知道以前做过的project有多少行代码,因为文件太多,直接手工数效率太低,于是编写一个python程序用来计算一个project有多少代码行. 首先,在一个项目中,有很多子文件夹,子文件夹中 ...
- javascript window.confirm确认 取消对话框实现代码小结
本文章讲述的三种都是基于了javascript confirm提示确认框的做法了,只是在不同的地方写哦,有需要的同学可参考一下 confirm() 方法 confirm() 方法用于显示一个带有指 ...
- Cookie的一些用法
Cookie的一些用法: package com.stono.servlet.listenerorder; import java.io.IOException; import java.io.Pri ...