标签:c语言如何清除scanf缓存 缓存 c语言 scanf
(1)清除缓存的函数是:
void safe_flush(FILE *fp) { int ch; while( (ch = fgetc(fp)) != EOF && ch != '\n' ); }
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缓存 缓存 c语言 scanf
原文地址:http://blog.csdn.net/xlgen157387/article/details/41731529