首页 > 代码库 > C语言如何清除scanf()缓存
C语言如何清除scanf()缓存
(1)清除缓存的函数是:
void safe_flush(FILE *fp) { int ch; while( (ch = fgetc(fp)) != EOF && ch != '\n' ); }
(2)然后我们在使用的时候,直接调用就可以了:
scanf("%d",&k); safe_flush(stdin);
这样就可以清除缓存带来的问题了!
(3)案例演示
a.当我们不清除scanf所带来的危害的时候:
#include<stdio.h> #include<string.h> int main() { int k; printf("请输入你的秘钥:(整数)"); scanf("%d",&k); char c; printf("请输入一个字符:"); c = getchar(); printf("%d ",k); printf("%c ",c); }
然后我们清除缓存:
#include<stdio.h> #include<string.h> //用于清除回车键缓存的影响 void safe_flush(FILE *fp) { int ch; while( (ch = fgetc(fp)) != EOF && ch != '\n' ); } int main() { int k; printf("请输入你的秘钥:(整数)"); scanf("%d",&k); safe_flush(stdin); char c; printf("请输入一个字符:"); c = getchar(); printf("%d ",k); printf("%c ",c); }
当我们输入整数之后,提示我们输入字符,显然消除了缓存
ok!
C语言如何清除scanf()缓存
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。