fflush(stdin)

来源:互联网 发布:网络污蔑 编辑:程序博客网 时间:2024/06/05 00:10
fflush(stdin); 
把输入缓冲区的内容清空,一般是配合scanf("%c",&e);语句用的,
原因是使用%c读入一个字符的时候,如果当前缓冲区里有内容则会跳过本次的读入,
直接从缓冲区把内容读取,从而似的读入的内容并非自己所输入的内容,
但是如果在开头添加fflush(stdin);则会在读取前把缓冲区清空,
这样使用%c就能再次读入内容,你可以运行下下面的程序:

#include<stdio.h>
void main()
{
char a,b;
scanf("%c", &a);
printf("%c/n", a + 1);
//fflush(stdin);
scanf("%c", &b);
printf("%c/n", b);
}

测试方法:
(1)输入c, 结果直接输出d就结束了;
(2)输入c e, 输出d的同时直接输出e;
(3)将程序注释的语句取消注释, 然后重复(1)和(2)就很明显了.
原创粉丝点击