第八章: IO库
一、IO类
1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型
2、不能拷贝IO对象,因此不能将形参或返回类型设置为流类型:通常以引用方式传递和方回流
3、读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的
4、通常在使用一个流之前应该检查它是否处于良好状态
5、管理输出缓冲
- 默认情况下,cin和cerr都关联到cout,因此,读cin或写cerr都会导致cout的缓冲区被刷新
cout << "hi!" << end; //输出hi和一个换行符,然后刷新缓冲区
cout << "hi!" << flush; //输出hi,刷新缓冲区,不附加任何额外字符
cout << "hi!" << ends; //输出hi和一个空字符,刷新缓冲区
二、文件输入输出
1、ifstream从一个给定文件读取数据,ofstream向一个给定文件写入数据, fstream可以读写给定文件
2、打开文件:fstream fstrm(s, mode);按mode方式打开文件
in //以读方式打开
out //以写方式打开
app //每次写操作前定位到文件尾
ate //打开文件后立即定位到文件尾
trunc //截断文件
binary //二进制方式进行IO
- 与ifstream关联的文件默认以in模式打开;与ofstream关联的文件默认以out模式打开;与fstream关联的文件默认以in和out模式打开
- 默认情况下,即使没有指定trunc,以out模式打开的文件也会被截断
- 要最佳模式必须自己指定app模式才可以追加写(ofstream::out | ofstream::app)
三、string流:可以向string写入数据,从string读取数据
- istringstream:从string读取数据
- ostringstream:向string写入数据
- 我们将一个istringstream与刚刚读取的文本行进行绑定,就可以在此istringsteam上使用输入运算符>>来读取当前记录的每个元素
第八章: IO库的更多相关文章
- 第八章 IO库
8.1&&8.2 #include <iostream> #include <vector> #include <string> using nam ...
- [APUE]标准IO库(下)
一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...
- [APUE]标准IO库(上)
一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...
- 文件IO函数和标准IO库的区别
摘自 http://blog.chinaunix.net/uid-26565142-id-3051729.html 1,文件IO函数,在Unix中,有如下5个:open,read,write,lsee ...
- 【转载】C++ IO库
本篇随笔为转载,原贴地址:<C++ Primer>第8章 IO库 学习笔记. 1.IO类 #include <iostream> istream//从流中读取数据 ostrea ...
- 从Decorator,Adapter模式看Java的IO库
我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,<<Java与模式>>这本书也不例外,有点不一样的是,这本书在 ...
- C++ Primer 读书笔记: 第8章 标准IO库
第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于 ...
- 标准模板库——IO库
IO库设施: . istream(输入流)类型,提供输入操作. . ostream(输出流)类型,提供输出操作. . cin,一个istream对象,从标准输入读取数据. . cout,一个ostre ...
- 高级UNIX环境编程5 标准IO库
标准IO库都围绕流进进行的 <stdio.h><wchar.h> memccpy 一般用汇编写的 ftell/fseek/ftello/fseeko/fgetpos/fsetp ...
- IO库
IO类 C++语言不直接处理出入输出,而是通过一族定义在标准库中的类型来处理IO.这些类型支持从设备读取数据.向设备写入数据的IO操作,设备可以是文件 .控制台窗口 等.还有一些类型允许内存IO ,即 ...
随机推荐
- Redis 实践笔记
本文来自:http://www.cnblogs.com/me-sa/archive/2012/03/13/redis-in-action.html 最近在项目中实践了一下Redis,过程中遇到并解决了 ...
- arm+linux 裸机环境搭建之安装工具篇(eclipse)
之前已经讲述如何安装gcc和gdb,在此不赘述! 一.所需要的软件有两个: jre-7u25-linux-i586.rpm(虚拟机) eclipse-cpp-kepler-R-linux-gtk .t ...
- 代码混淆 GSON完满解决
头疼的问题,json使用了google的gson三方包,可是混淆的时候出了问题 明明已经按照gson的官方文档,把混淆脚本加上去了,却还是出问题. 今天同事找到一篇博客,关于这个问题的: 我们是将js ...
- js 去重 字符串 [123123,123123,345435,33467,45645,343467,879,45645]
function unique(dislodgeArr) { var ret = [] var hash = {} var datasource = new Array(); var array= d ...
- 水平居中的两种方法margin text-align
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 引言:Canvas绘图API快速入门
引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...
- zoj1027 Human Gene Functions
一道动态规划,两个串进行匹配,不同字母匹配的值不一样,也可以和空格匹配(空格不能与空格匹配),求最大的匹配值. 数据很弱,每个串都在100以内. 定义dp[i][j]为第一个串前i个数和第二个串前j个 ...
- [Poco库]使用经验
1. Link错误 在Windows平台下使用时link报错 "CreateProcess is not defined"的解决GetEnvironmentVariable / S ...
- Git客户端使用
1.下载安装包 git: https://git-for-windows.github.io/index.html tortoisegit: https://download.tortoisegit ...
- 给flash文件加超链接[兼容主流浏览器]
<div style="position: relative;"> <a style="width: 640px; height: 90px; posi ...