1、fflush(stdin)函数
这个函数好像现在不在使用了
而且仅对整型标准输入有效
fflush(stdin)清空标准输入缓冲区
sstdin是standard input(标准输入)的意思
也可以有fflush(stdout)清空标准输出缓冲区
具体实现过程:
在下面的例子里,利用while函数实现scanf循环输入,结束条件:ret=-1;即scanf返回值为-1;
显然我们需要输入的是整型,如果我们输错了,输成了字符型,那么scanf函数就无法匹配成功,此时的scanf返回值为0,则ret=0;只有等于-1时才会停止.那么在scanf 的返回值为0时,有了fflush(stdin)函数1,此时i = 上次输入正确的数值,且不会一直执行下去
如果没有fflush(stdin)函数,i = 上次输入正确的数值,但是会一直输出i值。
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i;
int ret;
while(fflush(stdin),(ret = scanf("%d",&i)) != EOF){
printf("i = %d\n",i);
}
return 0;
}
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i;
int ret;
while((ret = scanf("%d",&i)) != EOF){
printf("i = %d\n",i);
}
return 0;
}