文档章节

C Primer Plus 第8章 字符输入/输出和输入确认 8.2 缓冲区

idreamo
 idreamo
发布于 2016/06/26 06:38
字数 490
阅读 32
收藏 0

8.2  缓冲区

当您在一些系统上运行前面的程序时,您所输入的文本立即回显。也就是说,一个可能的运行示例如下所示:

HHeelllloo,,tthheerree..II wwoouulldd[enter]

lliikkee aa#

前面描述的行为是例外的。在大多数系统上,在您按下回车键之前什么都不会发生,正如在第一个例子中所示。

输入字符的立即回显是非缓冲(unbuffered)或直接(direct)输入的一个实例,它表示您所键入的字符对正在等待的程序立即变为可用。

相反,延迟回显是缓冲(buffered)输入的实例,这种情况下您所键入的字符被收集并存储在一个被称为缓冲区(buffer)的临时存储区域中按下回车键可使您所键入的字符 对程序变为可用

为什么需要缓冲区?首先,将若干个字符作为一个块传输比逐个发送这些字符耗费时间少其次,如果您输入有误,就可以使用您的键盘更正功能来修正错误。当最终按下回车键时,您就可以发送正确的输入。

缓冲分为两种:完全缓冲(fully buffered)I/O和行缓冲(line-buffered)I/O。对完全缓冲来说,缓冲区满时被清空(内容被发送至其目的地)。这种类型的缓冲通常出现 在文件输入中。缓冲区的大小取决于系统,但512字节和4096字节是常见的值。对行缓冲I/O来说,遇到一个换行字符时将被清空缓冲区。键盘输入是标准的行缓冲,因此按下回车键将清空缓冲区。

不存在调用非缓冲输入的标准ANSI方式;使用的方法取决于计算机系统。

© 著作权归作者所有

idreamo
粉丝 18
博文 139
码字总数 224743
作品 0
青岛
产品经理
私信 提问
C Primer Plus(5版)第8章习题讲解(三)

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友” 第8章的复习题还剩下6、7、8三题没有讲解了。本文讲下第6、8题,第7题先不讲了。 1. 第6...

石家的鱼
2017/07/11
0
0
C Primer Plus(5版)第8章编程题1_重定向实现

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友” 一、题目描述 本题是第8章编程题的第一道题,题目如下: 二、题目及思路分析 从题述来看...

石家的鱼
2017/07/11
0
0
C Primer Plus 第8章 字符输入/输出和输入确认 8.3 重定向和文件

输入和输出涉及到函数、数据和设备。例如,考虑echo_eof.c程序。该程序使用了输入函数getchar()、输入设备(我们已经假设)是键盘,输入数据流由单独的字符组成。假设您希望保持相同的输入函...

idreamo
2016/06/28
174
0
C Primer Plus 第8章 字符输入/输出和输入确认 8.3 终止键盘输入

8.3.1 文件、流和键盘输入 文件是一块存储信息的存储器区域。通常,文件被保存在某种类别的永久存储器上,例如软盘、硬盘或磁盘。 具有强大、灵活等特点的C语言具有许多打开、读取、写入和关...

idreamo
2016/06/27
56
0
C Primer Plus (第六版) 中文版 随手笔记(七)

版权声明: https://blog.csdn.net/qq_38351824/article/details/80073244 声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺...

sumjess
2018/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部