C++ Primer 5th笔记(8)chapter8 类:IO库-文件流
1.创建一个文件流
ifstream in(ifile);//打开文件
ofstream out;//不打开文件
2. 文件输入输出类继承自iostream类,可以使用iostream类的操作
fstream特有操作
fstream fstrm;// 创立一个未绑定的文件流
fstream fstrm(s);//创立一个fstream,并打开名为s的文件
fstream fstrm(s,mode); //与前一个函数类似,但按指定mode打开文件
fstrm.open(s) //打开名为s的文件,并将文件与fstrm绑定
fstrm.close()//关闭与fstrm绑定的文件
fstrm.is_open()// 返回一个bool值,指出与fstrm关联的文件是否成功打开且尚未关闭
3. open 一个流对象打开一个文件
void open (const char *filename, openmode mode) ;
这里filename 是一个字符串,代表要打开的文件名,
mode 可以是标志符的组合:
ios::in 为输入(读)而打开文件,仅用做ifstream或fstream
ios::out 为输出(写)而打开文件,仅用做ofstream或fstream
ios::ate //打开就寻找末尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件
ios::binary 二进制方式来操作文件
eg.
ofstream file ;
file.open ("example.bin", ios::out | ios::app | ios::binary) ;ofstream file("example.bin", ios::out | ios::app | ios::binary);<=>
ofstream file ;
file.open("example.bin",ios::out | ios::app | ios::binary) ;
- 必须先关闭已经关联的文件,才可以打开新的文件。 当一个fstream对象被销毁时,close会自动被调用。
- 默认情况下,即使不设置trunc,以out模式打开的文件也会被截断,文件原有的内容被清空。
- 保留被ofstream打开的文件中已有数据的唯一方法是显式地指定app或者in模式。
- 不能对输入流设置out模式,也不能对输出流设置in模式。
eg.
void static process(ifstream& is){string s;while (is >> s)cout << s << endl;}void static ioFile(){ifstream input("sstream"); // create input and open the fileif (input) { // if the file is ok, ``process'' this fileprocess(input);}elsecerr << "couldn't open: sstream" ;}
sstream内容为:
morgan 2015552368 8625550123
drew 9735550130
lee 6095550132 2015550175 8005550000
结果:
【引用】
- 代码 https://github.com/thefistlei/cplusprimer/blob/main/cprimer/cprimer/ioTest.h
C++ Primer 5th笔记(8)chapter8 类:IO库-文件流相关推荐
- C++ Primer 5th笔记(chap 17 标准库特殊设施)未格式化的输入/输出操作
1. 格式化IO 输入和输出运算符(<< 和>>)根据读取或写入的数据类型来格式化它们. 输入运算符忽略空白符 输出应用补白 精度等规则操作 2. 未格式化 IO (unfor ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)多字节低层IO操作
1. 多字节操作 一些未格式化 IO 操作一次处理大块数据,这些操作要求我们自己分配并管理用来保存和提取数据的字符数组 操作 解释 is.get(sink, size, delim) 从is中读取最多 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)bernoulli_distribution 类
1. 定义 一个普通类, 而非模板. 此分布总是返回一个 bool 值. 它返回 true 的概率是一个常数, 此概率的默认值是 0.5 string resp; default_random_eng ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型
1. 多种类型的输入 可以搜索多种类型的输入序列. RE 库为这些不同的输入序列类型都定义了对应的类型,eg. 普通 char 数据.wchar_t 数据 字符可以保存在标准库string或是 cha ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符
1. 控制浮点数格式 可以控制浮点数输出三个种格式 • 以多高精度( 多少个数字) 打印浮点值 • 数值是打印为十六进制. 定点十进制还是科学记数法形式 • 对于没有小数部分的浮点值是否打印小数点 1 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
1. 提取 bitset 的值 函数返回一个值,保存了与bitset 对象相同的位模式. to_ulong() // 返回unsigned long to_ullong() //返回unsigned ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数
1. 场景: rand 生成随机数 此函数生成均匀分布的伪随机整数, 每个随机数的范围在 0 和一个系统相关的最大值( 至少为 32767) 之间. 1.1 问题: 一些应用需要随机浮点数. 一些程序 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志
1. 用来控制匹配和格式的标志 标准库还定义了用来在替换过程中控制匹配或格式的标志,这些标志可以传递给函数 regex_search 或 regex_match 或是类 smatch 的 format ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误
1. 指定或使用正则表达式时的错误 如果我们编写的正则表达式存在错误, 则在运行时标准库会抛出一个类型为regex 的异常 eg. try {// alnum右括号少了一个, 构造函数会抛出异常reg ...
最新文章
- linux spi双机通信,【转】STM32 SPI双机通信(主从全双工)
- 中国芯片将靠此超车!RISC-V架构神在哪全解构【附下载】
- intellij idea的TFS拉取项目文件不完全、文件误删恢复、TFS忽略文件解决方法
- 科大星云诗社动态20210328
- centos6.4下安装python3.6以及对应的django1.11
- mysql添加映射模块_iis7.5中让html与shtml一样支持include功能(添加模块映射)
- c++动态内存管理题目
- c mysql 编译_MySQL编译安装之cmake
- WPF使用Canvas绘制可变矩形
- 【转载】stackoverflow 上关于 rebar 的讨论
- SpringBoot注解@Component、Repository、Service、Controller的含义
- oracle11g arm,linux最全的需要oracle11g的rpm包
- Linux系统挂载新硬盘
- java 需要返回类型_在Java中,当一个方法不需要返回数据时返回类型必须是
- Effective java 第二章 对象 (2)
- 惠普136nw打印机清零_HP惠普打印机清零大全
- linux node安装菜鸟教程,手把手告诉你如何安装多个版本的node
- doc批量转成docx(doc batch convert docx)
- ubuntu 安装caj阅读器
- numpy学习:np.subtract.outer
热门文章
- 下列设备中 微型计算机系统必须具备的是,计算机应用基础题库
- html的li浮动之后往下移动,多个li浮动后居中显示问题
- 语法手册_是真的猛!SQL 语法速成手册
- 云计算数据中心建设热潮的两个图表
- 口令红包 java,[1.7.2]Gifts — 我的世界服务器在线礼物和登陆奖励插件
- Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)
- ML:从0到1 机器学习算法思路实现全部过程最强攻略
- Py:利用pickle模块和API天气接口实现输入城市得到该城市的天气预报
- 代码审计_strcmp比较字符串
- 最小割板子题——[USACO5.4]奶牛的电信