维吾尔族属于哪里的人:有关C/C++的问题

来源:百度文库 编辑:高考问答 时间:2024/04/27 18:06:21
int _tmain(int argc, _TCHAR* argv[])
{
int xx;
char c='y';

while( c=='y')
{
cout<<"xx="<<endl;
cin>>xx;

if( xx>12 || xx<-12)
{
cout<<"hello!"<<endl;
}
else
{
cout<<"hi!"<<endl;
}

cout<<"do you want to do again?(y/n)"<<endl;
cin>>c;
}
getch();
return 0;
}
运行上述代码时,当输入xx的值为int时,没错,然而当我输入一个字符,似乎进入了一个死循环,屏幕不断显示“do you want to do again?(y/n)",但是如果去掉“while"循环,不会出现上述问题。为什么?!
如果在cin>>c;后加一个getch();那么在输入一个字符之后,敲回车正常,但接着下一步,无论你输入什么,它都显示“xx=
hello!
do you want to do again?(y/n)“
同样进入死循环!

经过运行没有出错啊,程序没有错啊。你是不是总是把y输进去了啊。那样的话就再一次进入循环了啊。你只要输入除y以外的任何一个单词就好了。

你在cin>>c; 这个后面再加上一个getch();来接收回车;试一试..

开始时的结构体中没有定义Y

c=='y'???什么意思,难道自己可以强制转换吗