说明
C++编程I/O要点总结
资料参考 C++输入输出
IO基本概念
IO操作,两类:
- 从设备读取数据
- 将数据写入设备
这里,设备可以使控制台或者文件等。还有一种是内存IO,比如string
类型,从string
中读取数据,向string
中写入数据。
关键词: 设备
从上面我们可以知道,C++输入输出包含三部分:
- 标准I/O
- 文件I/O
- 串I/O
C++
*IO的特点*:
C++的I/O操作是类型安全(type safe)的
在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。而在C语言中,用
printf
和scanf
进行输入输出,往往不能保证所输入输出的数据是可靠的安全的。C++的I/O操作是可扩展的
IO中间商,内存缓冲区
在内存中为每一个数据流开辟一个内存缓冲区,用来存放流中的数据。
当用
cout
和插入运算符“<<”向显示器输出数据时,先将这些数据送到程序中的输出缓冲区保存,直到缓冲区满了或遇到endl,就将缓冲区中的全部数据送到显示器显示出来。
在输入时,从键盘输入的数据先放在键盘的缓冲区中,当按回车键时,键盘缓冲区中的数据输入到程序中的输入缓冲区,形成cin流,然后用提取运算符“ >>”从输入缓冲区中提取数据送给程序中的有关变量。
IO库总览
C++的I/O库中的类称为流类(stream class)
cout是流对象不是关键字
cont
是console output的缩写,意为在控制台(终端显示器)的输出。
cout
不是C++预定义的关键字,它是ostream
流类的对象。- 用
“cout<<”
输出基本类型的数据时,可以不必考虑数据是什么类型,系统会判断数据的类型,并根据其类型选择调用与之匹配的运算符重载函数。 cout
流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout
流插 人一个endl
时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符, 并刷新流(清空缓冲区)。