设为首页 加入收藏

TOP

C语言如何清除scanf()缓存
2015-01-21 11:09:03 来源: 作者: 【 】 浏览:13
Tags:语言 如何 清除 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
  
   
#include
   
     int main() { int k; printf("请输入你的秘钥:(整数)"); scanf("%d",&k); char c; printf("请输入一个字符:"); c = getchar(); printf("%d ",k); printf("%c ",c); } 
   
  


我们发现 我们输入一个整数的时候,就自动结束程序了,并且将输入的数值作为缓存给了字符c


\


然后我们清除缓存:

<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">#include #include //用于清除回车键缓存的影响 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语言 可变参数的使用 下一篇C语言学习入门 (二) 语句和运算符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: