前言
众所周知,程序员可以给程序输入数据,而程序处理后会返回一个输出。C语言使用函数库读取标准输入,然后再使用对应函数处理将结果打印到屏幕上。
printf函数可以将结果输出到控制台窗口中,而负责标准输入的则是scanf和getchar函数。本文简要总结下学习的scanf部分知识。
一、scanf函数原理
C语言并未提供输入输出关键字,它的输入和输出是利用标准函数库来实现的。因此C语言通过scanf函数读取键盘输入(即标准输入)。当scanf读取标准输入时,如果还没输入任何内容,那么scanf函数会被卡住(即阻塞),这时候就涉及缓冲区的知识了。
缓冲区其实是一段内存空间,分为读缓冲和写缓冲。C语言缓冲有三种特性:全缓冲、行缓冲、不带缓冲。
(1)全缓冲:当填满标准I/O缓存后才会进行实际I/O操作,典型代表就是对此盘文件的读写操作。
(2)行缓冲:当在输入和输出中遇到换行符时,才会执行真正的I/O操作。这时