C 缓冲区

0.引言

#include <stdio.h>

int main()
{
    char  ch;

    while((ch = getchar()) != '#')
    {
        putchar(ch);
    }
    getchar();
    return 0;
}
输入:
Hello,there. I would[enter]
回显(echoing the input):
Hello,there, I would

为什么在回显回显输入之前必须键入完整的一行呢?

1.缓冲区

1.延迟回显

延迟回显是您所键入的字符被收集并存储在一个被称为缓冲区(buffer)的临时存储区域中,按下回车键可使所键入的字符块对程序变为可用。
即:
输入 -> 送入缓冲区 -> 缓冲区内容对程序可用

2.为什么需要缓冲区

  • 将若干个字符作为一个块传输比逐个发送这些字符耗时少
  • 输入有误时可以删除并修正错误

3.完全缓冲I/O和行缓冲I/O

完全缓冲(fully buffered):缓冲区满时被清空(内容被发送至其目的地),通常出现在文件输入中。
行缓冲(line-buffered):遇到一个换行字符时清空缓冲区。键盘输入是标准的行缓冲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值