c++ 的一个死循环?

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:01:24
以下代码会死循环,不会提示用户输入,这是为什么?
while(true)
{
cout<<"1:按位置查询值"<<endl;
cout<<"2:按值查询位置"<<endl;
cout<<"3:插入数据"<<endl;
cout<<"4:删除数据"<<endl;
cin>>user_check1;
switch(user_check1)
{
case 0:
cout<<"请输入一个选项"<<endl;
break;
case 1:
{
cout<<"fff"<<endl;
}
break;
}
}
程序抒行结果如下死循环
1:按位置查询值
2:按值查询位置
3:插入数据
4:删除数据
请输入一个选项
1:按位置查询值
2:按值查询位置
3:插入数据
4:删除数据
请输入一个选项
1:按位置查询值
2:按值查询位置
3:插入数据
4:删除数据
请输入一个选项
.......
这个问题的关键是好像程序乎略了cin>>user_check1这一句,而只是无限的循环输出,没有让用户有机会输入,不是跳出循环,如果是跳出循环我会!

如果是这样的话,有可能你上面的另一个循环的输入有异意我就有遇到这样的问题,比如下面代码:
while(cin>>user_check)
{
if(user_check=='t')
{
break;
}
}
但你输入的是整型的,到后面的其它循环就会出现这种问题,你看看,是不是这样的相关问题!

你这不是程序吧,你这编的是什么代码啊,一团糨糊,你不想死循环的话先在最后个大刮号前打个break;

/*你连提示输入都没有,而且只是在case 0 提示,输入0之后,*/
什么都没干,只是cout<<"请输入一个选项"<<endl; ,怎么退出*/
/*你没提示,这让你误以为是死循环了!!!*/
/*我猜你的意思是怎样结束循环,我加了一点条件,可以结束,你可以试下*/
#include <iostream.h>
void main()
{
int user_check1;
while(true)
{
cout<<"0:退出操作"<<endl; //加此项提示结束情况
cout<<"1:按位置查询值"<<endl;
cout<<"2:按值查询位置"<<endl;
cout<<"3:插入数据"<<endl;
cout<<"4:删除数据\n"<<endl;

cout<<"请选择数字{1,2,3,4}:";
cin>>user_check1;
if(user_check1==0) break; //如果user_check1==0,则结束循环,退出
switch(use