没有找到您需要的,用Google搜索一下

2009年4月3日星期五

C++ Primer读书笔记 8章

文章来源http://xuexi88.blogspot.com/


第八章:文件操作
1.IO文件: iostream 控制窗口IO。 fstream 文件IO。 sstream内存中的string IO.后两个是从第一的头文件中继承而来。
2.标准库类型不能做复制或赋值操作。
3.只有支持复制的元素可以放在vector等容器类型中。因为只有可以复制的可以放
4.流对象不能做形参或返回类型。
5.如果要传递IO对象应该传递非const的引用类型。因为读写会改变他的状态。

流状态:
1.检查流状态: if(cin) while(cin>>word)...;
2.所有流对象都有一个条件状态成员。该成员由setstate 和 clear管理。
3.类型:iostate类型,是由各个iostream类型定义的、机器相关的整形。该状态成员以二进制位的形式使用。
4.每个IO类,有三个iostate类型的常量:badbit failbit eofbit与位操作符使用。以便在一次操作中检查、设置多个标志。
5.badbit 系统级故障不可恢复
failbit 可恢复。
eofbit 遇到文件结束符。
6.用bad fail eof good 检查流的状态
7. clear 清除所有,使流为有效状态。clear(flag)清除某种iostate的状态。
8 setstate(iostate x) 设置流的某个状态为true;
9. rdstate() 返回流的当前iostate.
10.从键盘键入文件结束符。windows:ctrl-z unix mac ox:ctrl-d
缓冲区管理
1.以下情况导致缓冲区刷新:
1.程序正常结束。
2.缓冲区慢了。
3.结束符endl;
4.unitbuf操作符操作。
5.输入输出连起来,当读输入流时,会刷新相应的输出区。
2. flush .ends 另外两个特殊的操作符。 unitbuf 不会用。
3.tie(&cout) ostream类型的指针形参。返回当前绑定的对象指针。tie(0)解除绑定。
文件流:
1.使用一个流对象打开一个文件有两种方式:1.初始化把文件名作为参数.2.使用open()
2.open以后要clear清除状态,close关闭流。
3.if(streamObject) 检查文件流当前是否有错。
4.打开文件的模式:
in 打开文件做读操作 out 打开文件做写操作 app 每次写之前找到文件尾
ate 打开文件后立刻找到文件尾 trunc 打开文件后情况文件流内容
binary 以二进制形式读写流。
5.ifstream 默认以 in方式打开。ofstream 默认以out打开,会丢失原有数据。
fstream 默认以 in out 方式打开,并且不不会丢失原有数据。
6.用ofstream对象打开文件时,为了不丢失数据,唯一的方法是,显示用app.
7.trunc 与 app 模式冲突,不能同时使用,否则会出错。
8.注意模式是文件的属性,不是流的属性,在切换文件时,可为不同的文件添加读写属性
9.打开模式的有效组合:
out 打开做写操作,清除原有内容。
out app 同上,不清除内容。
out trunc 同out
in 打开做读操作
in out 打开做读写操作,并定位文件开头。
in out trunc 打开做读写操作,清除内容。

文章来源http://xuexi88.blogspot.com/

0 评论:

发表评论