用C语言缓冲是什么意思?
临时存储区称为缓冲区。所有输入输出(I/O)设备都包含I/O缓冲区。
当我们尝试传递超过所需数量的值作为输入时,其余值将自动保存在输入缓冲区中。如果存在,此缓冲区数据将自动转到下一个输入功能。
我们必须先清除缓冲区,然后再接受下一个输入。
示例
以下是缓冲区的C程序-
#include输出结果void main(){ int a,b; printf("\n Enter a value: "); scanf("%d",&a); printf("\n Enter b value: "); scanf("%d",&b); printf("\n a+b=%d ",a+b); getch(); }
执行以上程序后,将产生以下结果-
Enter a value: 1 Enter b value: 2 a+b=3
再次运行该程序。这次,我们尝试在a中而不是b中输入值。
Enter a value: 1 2 3 Enter b value: a+b=3
即使我们没有输入b值,它也会采用先前存储的值,该值已经存在于缓冲区中。
在实现中,当我们需要删除标准输入缓冲区数据时,则执行flushall()或fflush()功能。
flushall()−这是stdio.h中存在的预定义函数。通过使用flushall,我们可以从I/O缓冲区中删除数据。
fflush()−这是“stdio.h”头文件中的预定义函数,用于清除输入或输出缓冲存储器。
fflush(stdin)−用于清除输入缓冲存储器。建议在编写scanf语句之前使用。
fflush(stdout)−用于清除输出缓冲存储器。建议在printf语句之前使用。