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

关于scanf的读入有关问题

2012-02-10 
关于scanf的读入问题scanf( %c%c\n ,&a,&b)为什么要多输入一个字符才行?这是作业,帮忙啊!多谢了! [解决

关于scanf的读入问题
scanf( "%c%c\n ",&a,&b);

为什么要多输入一个字符才行?

这是作业,帮忙啊!多谢了!


[解决办法]
在执行完输入最后一行a,b之后, '\n '还在流里,在判断feof(stdin)时就是没有结束,而实际上流里已经没有可以输入的数了.
scanf( "%d%d\n ",&m,&n);//执行最后一次时,把流里最后的 '\n '带走了
因为如果你的输入是scanf( "%d%d ",&a,&b)的话,实际上输入的是a,b,\n三个,这就是很普遍的scanf函数输入溢出问题。解决这个问题,一般是scanf( "%d%d\n ",&a,&b),但是在实际编程中,也可以用fflush()函数对输入流进行清空,防止因为\n的问题造成输入溢出。

热点排行
Bad Request.