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

关于循环输入的有关问题

2013-03-27 
关于循环输入的问题scanf (%c,&mletter) while (mletterA||mletterZ){if (mletter 0)break

关于循环输入的问题

scanf ("%c",&mletter); 

while (mletter<'A'||mletter>'Z')
{
if (mletter == '0')
            break;          
printf ("wrong upper letter ! enter again !\n");
printf ("letter:_\b");
scanf ("%c",&mletter);             

}

以上是我写的关于鉴定输入大写字母是否合法 ,非法时重新输入部分的代码,
如果我输入的非除 0 以外的非大写字母,为什么会出现下面这种情况,
-----------------

letter:a
wrong upper letter ! enter again !
letter:wrong upper letter ! enter again !
letter:_
------------
我键入了一个值 然后通过回车键将此值送到mletter ,编译器认为我输入了两个字符??
那我该怎样解决这个问题了??
---------
c
[解决办法]
在while中的scanf前加一句 fflush(stdin); // 刷新缓冲区

热点排行