首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问一个关于c输出的有关问题

2012-09-04 
请教一个关于c输出的问题#includestdio.h int main(){ int c1 do{ scanf(%d,&c) printf(%d,c) }

请教一个关于c输出的问题
#include<stdio.h> int main() 
{ int c=1; do{ scanf("%d",&c); printf("%d",c); }
while(c==1); 
return 0;
}
上面的程序在输入非数字时陷入死循环,why?

[解决办法]
因为scanf是按格式匹配的,如果输入非数字,那么它就不会把数据从键盘缓冲区取走,那么卡在键盘缓冲区的这个非数字以及回车符,就会造成死循环。
解法:用getchar()消化掉回车符,或者fflush(stdin)。

热点排行