关于循环输入的问题
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); // 刷新缓冲区