缓冲区

缓冲区在输入/输出操作中扮演重要角色,它可以提高效率并允许错误修正。字符输入有两种形式:非缓冲(直接)和缓冲。缓冲区收集字符,直到达到特定条件(如满或遇换行符)才传输。完全缓冲适用于文件输入,行缓冲常见于键盘输入,如回车键清空缓冲区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入字符的回显是非缓冲区(ubuffered)或直接(direct)输入的一个实例,它表示所键入的的字符对正在等待的程序立即变为可用的。相反,延迟回显缓冲是缓冲输入的实例,这种情况下所输入的字符被收集并存储在一个被称为缓冲区(buffer)的临时存储区域中。按下回车键可使输入的字符块对程序有用。

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

有些地方用到的是非缓冲输入,一些交互性的地方,如游戏中的一些按键。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道亦无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值