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基本上是由一个字节大小 ...
随机推荐
- mysql查看sql语句执行时间
原文地址: http://www.cnblogs.com/happySmily/p/5943311.html
- iOS 消息推送原理及实现总结 分类: ios技术 2015-03-01 09:22 70人阅读 评论(0) 收藏
在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服 ...
- Maven的安装和使用
http://repo.spring.io/release/org/springframework/spring/ 安装配置:https://segmentfault.com/a/1190000003 ...
- mongodbVUE基本操作(转)
基本操作: http://my.oschina.net/u/1026531/blog/188336
- CocoaPods 更新慢&swift版本适配
一.更新慢的问题 使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动 原因在于当执行以上两个命令的 ...
- graphical Layout调大一点
布局最右边的放大器按钮好难找啊
- [Angular Tutorial] 2-Angular Templates
是时候用AngularJS生成我们的动态页面了. 通常我们有很多方法来构建一个应用的代码.对于Angular的应用,我们鼓励使用MVC设计模式来解耦代码并且实现职责独立.记住这个,现在让我们在我们的应 ...
- 使用PopupMenu创建弹出式菜单
PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方.PopupMenu可增加多个菜单项,并可为菜单项增加子菜单. 使用P ...
- Django 设置cookies与获取cookies.
在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的 ...
- PHP header( ) 禁止页面后退
header("Cache-control:no-cache,no-store,must-revalidate"); header("Pragma:no-cache&qu ...