一 .什么叫缓冲区?
用户输入的字符被收集储存在一个临时储存区。(通俗来讲:你写的东西都放到一块,等着计算机一起处理,在此期间你可以对你写的东西进行修改)
缓冲一般分为两类:
- 完全缓冲:当缓冲区被填满时才刷新缓冲区(内容被发送,计算机开始处理你所输入的字符)
- 行缓冲(我们所用的缓冲方式):在出现换行符时刷新缓冲区。(注意:此时的换行符可能留在在缓冲区中,比如说scanf()函数,它会将回车留到缓冲区中,而像fgets()函数它会读取‘\n’ 。gets()函数会抛弃‘\n’)
二. 为什么要有缓冲区?
- 我们知道cpu的处理速度时很快的,而我们的输入是很慢的,为了不让cpu等待从而提高效率,有了缓冲区。
- (次要)如果我们打错字符,可以直接通过键盘进行修改。
了解了缓冲区之后,我们知道他是和输入和输出有关的东西,自然就引出了输入和输出相关的几个概念。
- 文件:文件是存储器中储存信息的区域,通常文件都保存在某种永久存储器中(硬盘,u盘,DVD等)。你编写的c程序就保存在文件中。
- 流(stream):是输入和输出与文件的一个媒介。把不同种类不同属性的输入,用流来统一表示。(举个例子:我从键盘输入一些数据,然后又从文件中输入一些数据,那么这些数据就都用流来表示)
stdin流:表示键盘输入
stdout流:表示屏幕输出
c程序处理的是流而不是直接处理文件。
这些概念在学完之后可以试着了解一些与输入相关的函数。C语言中像getchar()scanf()fgets()gets_s()以及对应的输出函数等。