getchar的使用例子(第十二章getcharputchar和缓冲区介绍)
getchar的使用例子(第十二章getcharputchar和缓冲区介绍)这一章比较短就介绍这些。缓冲区打个不太惬当的比方就是购物车,在没有缓冲区的时候,你买东西就直接点购买,那这个时候,你要买多少东西,就得点多少次的购买,万一不想买了,那就麻烦了,需要联系客服退货,那么有缓冲区的时候,你买东西就是先把东西放入购物车,,然后把你放入购物车的东西统一支付,要是在里面有不想买的,还可以修改。就大致是这么个意思。当然有些时候我们不能用缓冲,比如你在打游戏的时候,是不是一按下某个键马上就有对应的操作,所以他们有各自的用途。缓冲分为两类:完全缓冲I/O和行缓冲I/O,对完全缓冲输入来说,缓冲区满时被清空,其内容被发送到目的地,这种类型的缓冲通常出现在文件输入中,缓冲区大小取决于系统,一般可能是512字节或4096字节。对于行缓冲I/O来说,遇到一个换行字符时将被清空缓冲区,想一下,我们用getchar和scanf时是不是只有在按了回车后才被输入的。
经过前面几章我们对C语言已经有了一定的了解,其中的printf和scanf几乎可以打印和输入所有格式的内容,但是呢有时候我们只是需要输入输出一个字符,使用printf和scanf就有点繁琐了,那我们可以用getchar和putchar来输入输出单个字符。
我们来看一个简单的例子,就是输入一个字符然后在屏幕上显示它。
有时候你想让用户按某个字符退出循环什么的,就可以用这个,比如按井号键(#)结束:(ch=getchar())!='#'。
接下来我们来了解一下缓冲区:
缓冲区打个不太惬当的比方就是购物车,在没有缓冲区的时候,你买东西就直接点购买,那这个时候,你要买多少东西,就得点多少次的购买,万一不想买了,那就麻烦了,需要联系客服退货,那么有缓冲区的时候,你买东西就是先把东西放入购物车,,然后把你放入购物车的东西统一支付,要是在里面有不想买的,还可以修改。就大致是这么个意思。
当然有些时候我们不能用缓冲,比如你在打游戏的时候,是不是一按下某个键马上就有对应的操作,所以他们有各自的用途。
缓冲分为两类:完全缓冲I/O和行缓冲I/O,对完全缓冲输入来说,缓冲区满时被清空,其内容被发送到目的地,这种类型的缓冲通常出现在文件输入中,缓冲区大小取决于系统,一般可能是512字节或4096字节。对于行缓冲I/O来说,遇到一个换行字符时将被清空缓冲区,想一下,我们用getchar和scanf时是不是只有在按了回车后才被输入的。
这一章比较短就介绍这些。