C语言的缓冲区
2016-05-07 21:47
211 查看
1.什么是缓冲区
缓冲区是内存的一部分空间,用缓冲输入输出的数据。缓冲区又分为输入缓冲区和输出缓冲区。缓冲区又被称为缓存.
2.缓冲区存在的意义
主要的意义就是为了提高cpu的效率。
输入端。假如没有缓冲区,我们要从磁盘中读取数据,有几个字符,CPU就要读写几次,CPU是高速率的,而读取是低速率的,这样做会降低CPU的效率。相反如果将数据都存在缓冲区里面,等要读取的时候就可以一次性读取多数的数据。大大地提高了CPU的效率。
输出端。假如要将数据打印出来,打印机是低速的,CPU是高速的。将数据放入缓冲区,避免数据被分为多次打印,就此解放了CPU,使它能去处理其他任务。
3.缓冲区的类型
缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。
(1)全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。
(2)行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。
(3)不带缓冲
也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。
4.缓冲区什么时候刷新
(1)缓冲区满的时候
(2)执行fflush函数时(while((ch=getchar())&&ch!='\n'&&ch!=EOF){;})
(3)执行endl;flush语句(c++)
(4)关闭文件的时候
缓冲区是内存的一部分空间,用缓冲输入输出的数据。缓冲区又分为输入缓冲区和输出缓冲区。缓冲区又被称为缓存.
2.缓冲区存在的意义
主要的意义就是为了提高cpu的效率。
输入端。假如没有缓冲区,我们要从磁盘中读取数据,有几个字符,CPU就要读写几次,CPU是高速率的,而读取是低速率的,这样做会降低CPU的效率。相反如果将数据都存在缓冲区里面,等要读取的时候就可以一次性读取多数的数据。大大地提高了CPU的效率。
输出端。假如要将数据打印出来,打印机是低速的,CPU是高速的。将数据放入缓冲区,避免数据被分为多次打印,就此解放了CPU,使它能去处理其他任务。
3.缓冲区的类型
缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。
(1)全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。
(2)行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。
(3)不带缓冲
也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。
4.缓冲区什么时候刷新
(1)缓冲区满的时候
(2)执行fflush函数时(while((ch=getchar())&&ch!='\n'&&ch!=EOF){;})
(3)执行endl;flush语句(c++)
(4)关闭文件的时候
相关文章推荐
- 338. Counting Bits 数字的二进制中1的个数
- c++第5次作业
- C++预处理器
- 字符串的一个小测试
- c++第五次上机实验
- 空心三角形(图形的输出)c语言
- HDU 4417-Super Mario(划分树-二分查找)
- 介绍const
- 山东省第四届ACM大学生程序设计竞赛-Boring Counting(划分树-二分查找)
- C++第五次作业
- C++第5次实验- 教师类
- c/c++中与时间相关的问题
- Contest 2016-5-7 B(HDU 5616)
- C++第五次上机实验
- C++课程上 有关“指针” 的小结
- C++中模板的使用
- C++中模板的使用
- c++上机实验5-项目三
- C++函数指针
- c语言内嵌汇编语法