其他分享
首页 > 其他分享> > cpp学习

cpp学习

作者:互联网

8.1 io类

8.1.1 IO对象无拷贝或赋值

  1. 不能拷贝IO对象,因此不能将形参或者返回类型设置为流类型。进行IO操作的类型通常以引用的方式传递和返回流
  2. 读写IO会改变其状态,因此传递和返回的引用不能是const的

8.1.2 条件状态

IO库的条件状态

条件状态 描述
strm::iostate strm 是一种IO类型。iostate是一种机器相关的类型,提供了表达条件状态的完整功能
strm::badbit strm::badbit用来指出流已崩溃
strm::failbit strm::failbit用来指出一个IO操作失效了
strm::eofbit strm::eofbit用来指出流到达了文件结束
strm::goodbit strm::goodbit用来之后粗流未处于错误状态,此值保证为0

一个流一旦发生错误,其上后续的IO操作就会失败。因此需要在使用流之前检查它是否处于良好状态,最简单的办法是将它当作条件来使用

查询流的状态

管理条件状态

8.1.3 管理输出缓冲

导致缓冲刷新的原因有很多:

刷新输出缓冲区

unitbuf 操纵符

关联输入和输出流

tie():返回指向输出流的指针,如果本对象当前关联到一个输出流,那么返回这个流的指针
tie(&ostream)将本对象关联到一个ostream

8.2文件输入输出

fstream 特有的操作

特性 描述
fstream fstrm; 创建一个未绑定的文件流,fstream 是头文件中定义的一个类型
fstream fstrm(s); 创建一个fstream 打开名为s的文件。s可以是string类型的,或者是一个指向c风格字符串的指针。这些构造函数都是explicit的,默认的文件模式依赖于fstream的类型
fstream fstrm(s,mode); 以指定mode打开文件
fstrm.open(s) 打开名为s的文件,并将文件与fstrm绑定。s可以是一个string 或者一个指向c风格字符串的指针。默认的文件mode依赖于fstram的指针
fstrm.close() 关闭与fstrm绑定的文件。返回void
fstrm.is_open() 返回一个bool值,指出与fstrm关联的文件是否成功打开且尚未关闭

标签:strm,fstream,fstrm,学习,缓冲区,IO,刷新,cpp
来源: https://www.cnblogs.com/zhouyu0-0/p/14405805.html