缓冲区 输入输出流控制 实时刷新

为什么需要缓冲区?

1.将若干个字符作为一个块传输比逐个发送这些字符耗费的时间少.

2.如果输入有错误,就可以使用您的键盘更正功能来修正错误.当最终按下回车键时,您就可以发送正确的输入.

 

也有需要禁用缓冲区的情况

一些交互性的程序需要非缓冲区输入,例如在游戏中,你希望一按下键就执行某些命令.

因此,缓冲和非缓冲输入具有他们各自的用途

 

缓冲分为两类:

1.完全缓冲(fully buffered)I/O    缓冲区满时被清空(内容被发送置其目的地) 这种类型的缓冲通常出现在文件输入中,缓冲区大小取决于系统,512和4096字节是常见的值

2.行缓冲(line-buffered)I/O        对行缓冲I/O来说,遇到一个换行符时将被清空缓冲区.键盘输入是标准的行缓冲,因此按下回车键将清空缓冲区.

 

我们现在使用的是那种类型的输入:缓冲还是非缓冲?

1.ANSIC 指定应该对输入进行缓冲    (原因是一些计算机设计不允许非缓冲输入)

2.K&R则将选择权留给了编译器的编写者

 

使用不同的函数来决定输入是缓冲的还是非缓冲的

行缓冲的       getchar()             在stdio.h头文件里定义

非缓冲的       getche()     回显     conio.h

                       getch()   非回显      conio.h     回显和非回显的区别就是在控制台输入的字符是否可见,非回显就是输入的字符不可见

 

输出流和这个类似

草草收尾了

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值