vc++ do while循环问题
[code]#include <stdio.h>#include <stdlib.h>
void main()
{
char shuru;
do
{
printf("\n请输入字符:");
scanf("%c",&shuru);
} while(shuru!='s');
printf("输入正确!");
}[/code]
这个代码哪里不对啊 为什么我在输入一个不是s的字符的时候会显示两行“请输入字符”?
[[i] 本帖最后由 破风 于 2007-3-13 21:56 编辑 [/i]] 你把while前的{去掉试试 谢谢了 up
回车或空格也作为ascii字符被读入,你也可以考虑滤掉 fflush(stdin); 清空键盘缓存 具体有什么用,
有谁可以讲解一写么:face18
楼主有才啊!
大姐,您真是太有才了,您这个问题问的真是太好了。你这个程序不就是要实现这个情况吗?——当输入s时,输出“输入正确”;当输入非s字符时,输出“请输入字符”,要求继续输入。
你这个问题和下面这个问题类似:
有一段程序:
int a;
a = 1+1;
printf("%d",a);
为啥这个程序的输出结果总是2呢?高手帮帮忙啊…… 时间有点久了, 不过我还是再回复一下。
do-while循环是先做后判断,所以先输出一个"请输入字符",结果你输入的不是s,于是判断,不是s,满足条件——shuru!=s,于是继续循环,又输出一个"请输入字符".
页:
[1]
