C++ Primer Chapter 8-1
来源:互联网 发布:演唱会抢票软件 编辑:程序博客网 时间:2024/05/19 22:47
1:标准库定义了一组处理宽字符的类,都在标准 IO 类名字前加一个 w,与标准类在同一个头文件中
2:可以将一个派生类当做基类来使用
3:任何流对象都是不可以复制和赋值,只能被引用,又因为流操作会改变流对象,所以不可以用常量引用
4:IO流中的状态值的不同位代表了不同的流状态标志位。 比如 badbit,failbit,eofbit
goodbit, 这些位都可以通过位操作来置位。比如 auto state = cin.rdstate() 可以读出这些状态,cin.setstate (state) 可以设置流状态 , 可以用 state & ~cin.badbit | cin.failbit 操作state的相应位。
5: 我们可以用 bad() , fail() , eof() , good() 来获取流对象的状态变量中相应位的状态,如果该位置位,则返回True,说明流对象当前前处于该状态。
6:流输入的理解:当我们用 cin 输入时,首先流对象会从缓存读入数据,发现缓存中是空的,则会从输入设备向缓存读入数据,遇到回车后结束从设备读入缓存,开始从缓存读入到变量中,一直到缓存为空,再次从设备读入缓存,然后再开始读缓存中数据到变量。
比如 while(cin >> v){ cout << v;} 每次我们输入时,开始缓存为空的,需要从设备读入数据,我们按下回车停止从设备读入缓存,,这时候开始从缓存中读入到变量 V 中;每次从缓存中读出一个数据则执行一次cout,开始读缓存中下一个数据 ,直到缓存空了,再开始从设备读入缓存。结合习题8.2运行结果理解
7:endl 可以显示的刷新缓存区,flush 也是刷新缓存区但是不写任何数据,end 则写入空字符后刷新 。cin 的读和 cerr 的写也可以刷新cout的缓存。
8:程序崩溃并不会刷新缓存区,所以如果调试时遇到该输出的却没有输出,可能是语句执行了,但是缓存区没有刷新而已
9:关联的输入和输出,如果一个输入流被关联到一个输出流,那么输入流的读取都会刷新输出流。
10:可以用 tie () 函数关联两个流。一个流只能关联一个流,但是一个流可以被多个流关联。
11: 文件流对象:fstream文件流对象必须打开文件绑定文件才能够操作文件,而 IO的则不需绑定,因为 IO 只对应于控制台和键盘这个流对象,而文件流则不一样,因为文件可以有很多个,所以文件流对象需要绑定文件并且打开文件才可以读写。
12:打开文件需要检查文件是否打开成功
13:一个文件流对象只可以关联一个文件,如果想关联另外一个文件,只能把关闭现有文件,重新打开新文件。
14:当一个文件流对象被销毁时,与之关联的文件会自动的被关闭。
0 0
- C++ Primer Chapter 8-1
- 《C primer plus》笔记--Chapter 1
- C++Primer-Function chapter
- C primer plus -- Chapter 2
- C++ Primer Chapter 1
- C++ Primer Chapter 8-2
- C++ Primer Chapter 6-1
- C++ Primer Chapter 7-1
- C++ Primer Chapter 9-1
- C++ Primer Chapter 10-1
- C++ Primer Chapter 11-1
- C++ Primer Chapter 12-1
- C++ Primer Chapter 13-1
- C++ Primer Chapter 14-1
- C++ Primer Chapter 15-1
- c primer plus Chapter 14 p383
- C++Primer Chapter One学习笔记
- 加减乘除计算器——C primer plus 5edith chapter 8
- Easy_install安装与使用
- 进阶之初探nodeJS
- 10-建设单位试用报告
- im4java-ImageMagick图片压缩处理
- vector中erase用法注意事项
- C++ Primer Chapter 8-1
- 你好,世界
- Linux(CentOS) 如何查看当前占用CPU或内存最多的K个进程
- Spring装配Bean——通过配置XML装配bean
- HDU 2087 剪花布条(KMP )
- 11-软件研制总结报告
- 信息管理与维护怎么形成
- 使用闭包
- POJ 2965 The Pilots Brothers' refrigerator (DFS + 枚举)