流是进出程序的字节流。缓冲区是内存中的临时存储区域,是程序与文件或其他I/O设备之间的桥梁。信息在缓冲区和文件之间传输时,将使用设备(如磁盘驱动器)处理效率最高的尺寸以大块数据的方式进行传输。信息在缓冲区和程序之间传输时,是逐字节传输的,这种方式对于程序中的处理操作更为方便。C++通过将一个被缓冲流同程序及其输入源相连来处理输入。同样,C++也通过建一个被缓冲流与程序及其输出目标相连来处理输出。iostream和fstream文件的构成了I/O类库,该类库定义了大量用于管理流的类。包含了iostream文件的C++程序将自动打开8个流,并使用8个对象管理它们。cin对象管理标准输入流,后者默认与标准输入设备(通常为键盘)相连;cout对象管理标准输出流,后者默认与标准输出设备(通常为显示器)相连;cerr和clog对象管理与标准错误设备(通常为显示器)相连的未被缓冲的流和被缓冲的流。这4个对象都有用于宽字符的副本,它们是wcin,wcout,wcerr,wclog。
I/O类库提供了大量有用的方法。istream类定义了多个版本的抽取运算符(>>),用于识别所有基本的C++类型,并将字符输入转换为这些类型。get()方法族和getline()方法为单字符输入和字符串输入提供了进一步的支持。同样,ostream类定义了多个版本的插入运算符(<<),用于识别所有的C++基本类型,并将它们转换为相应的字符数除。put()方法对单字符输出提供了进一步的支持。wistream和wostream类对款子服提供了类似的支持。
使用ios_base类方法以及文件iostream和iomanip中定义的控制符(可与插入运算符拼接的函数),可以控制程序如何格式化输出。这些方法和控制符使得能够空置技术系统、字段宽度、小数位数、显式浮点变量时采用的技术系统以及其他元素。
fstream文件提供了将iostream方法扩展到文件I/O的类定义。ifstream类是从istream类派生而来的。通过将ifstream对象与文件关联起来可以使用所有的istream方法来读取文件。同样,ofstream……。
要将文件与流关联起来,可以在初始化文件流对象时提供文件名,也可以先创建一个文件流对象,然后用open()方法将这个流与文件关联起来。close()方法终止流与文件之间的链接。类构造函数和open()方法接受可选的第二个参数,该参数提供文件模式。文件模式决定文件是否被读和/或写、打开文件一边写入时是否截短文件、试图打开不存在的文件时是否会导致错误、是使用二进制模式还是文本模式等。
文本文件以字符格式存储所有的信息,例如,数字值将被转换为字符表示。常规的插入和抽取运算符以及get()和getline()都支持这种模式。二进制文件使用计算机内部使用的二进制表示来存储信息。与文本文件相比,二进制文件存储数据(尤其是浮点值)更为精确、简介,但可移植性较差。read()和write()方法都支持二进制输入和输出。
seekg()和seekp()函数提供对文件的随机存取。这些类方法使得能够将文件指针放置到相对于文件开头、文件尾和当前位置的某个位置。tellg()和tellp()方法报告当前的文件位置。
sstream头文件定义了istringstream和ostringstream类,这些类使得能够使用istream和ostream方法来抽取字符串中的信息,并对要放入到字符串中的信息进行格式化。

最新文章

  1. div里嵌套了img 底部会出现白边
  2. octave手册
  3. 几年前做家教写的C教程(之五专讲结构体与文件操作)
  4. lhgdialog: iframe页面里面的,确定,关闭、取消按钮的操作
  5. POJ 2486 Apple Tree(树形DP)
  6. Linux学习笔记(7)-系统资源查看
  7. 一步步学习ASP.NET MVC3 (14)——Route路由
  8. 制作chm格式的帮助文档
  9. 关于android 1.6全部的权限介绍
  10. spring返回@ResponseBody报406
  11. python3之异常处理,断言和反射
  12. Hive 自定义函数
  13. [Chrome 浏览器快捷键]——“你是键盘党吗?”
  14. 6 Tools To Jump Start Your Video Content Marketing
  15. win10的MySQL客户端连接centos7虚拟机的mysql服务端连接不上解决办法
  16. 咸鱼入门到放弃11--Servlet+JSP+JavaBean开发模式
  17. 2018-2019-2 网络对抗技术 20165303 Exp6 信息搜集与漏洞扫描
  18. UC浏览器input文本框输入文字回车键自动提交
  19. Ubuntu18.04上安装java
  20. python安装simplejson

热门文章

  1. if 结构和三目运算和switch语句
  2. Wifi 评分机制分析
  3. 使用xshell5 从CentOS主机download资料
  4. [转]jQuery选择器 (详解)
  5. Prolog学习:数独和八皇后问题
  6. e559. 创建窗口
  7. 基于SOA的组件化业务基础平台[转]
  8. perl 查看某个模块的安装路径
  9. 用grep 筛选fastq 序列
  10. Xming导致的SecureCRT远程登录的普通用户图形程序不能运行