C++ Primer 读书笔记: 第8章 标准IO库

第8章 标准IO库

8.1 面向对象的标准库

1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象。在fstream和sstream里定义的美中类型都是从iostream头文件中定义的相关类型派生而来。

2. 流对象不能复制,因此不能存储在vector容器中

3. 形参或返回类型也不能为流类型。如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用。

8.2 条件状态

IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误。

1. s.eof(); s.fail(); s.bad(); s.good(); s.clear(); s.clear(flag); s.setstate(flag); s.rdstate()

2. 分析while(cin>>val)出现错误的情况?

8.3 输出缓冲区的管理

下面几种情况将导致缓冲区的内容被刷新,即写入到真实的输出设备或文件:

(1)程序正常结束。

(2)在一些不确定的时候,缓冲区可能已经满了

(3)用操纵符显式的刷新缓冲区,例如行结束符endl。例如:cout<<flush; cout<<ends; cout<<endl;

(4)在每次输出操作执行完后,用unitbuf操纵符设置流的内部状态。例如:cout<<unitbuf<<nounitbuf; 等价于cout<<flush;

(5)可将输出流与输入流关联起来

8.4 文件的输入和输出

1. 检查文件打开是否成功

ifstream infile;
ofstream outfile;
infile.open("in");
outfile("outfile");
if(!infile){
  cerr<<"error: unable to open input file";
}

2. 将文件流与新文件重新捆绑

ifstream infile("in");
infile.close();
infile.open("next");

3. 清除文件流的状态

inflie.clear();

4. 文件模式

in 打开文件做读操作

out 打开文件做写操作

app 在每次写之前找到文件尾

ate 打开文件后立即将文件定位在文件尾

trunc 打开文件时清空已存在的文件流

binary 以为禁止模式进行IO操作

例如:

ofstream outfile1("file1");
ofstream outfile2("file1", ofstream::out | ofstream::trunc);
ofstream outfile3("file3", ofstream::app);

对同一个文件作输入和输出运算

fstream inOut("copyOut", fstream::in | fstream::out);

模式是文件的属性而不是流的属性

8.5 字符串流

sstream头文件中有istringstream和ostringstream两个类分别进行读写操作

转载于:https://www.cnblogs.com/xiamaogeng/p/4458538.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值