沿途有鬼 发表于 2008-7-24 11:04

c++中关于while(t>=0&&t<=60)输入q程序退出遇到死循环问题(跪求答案)

c++中关于while(t>=0&&t<=60)输入q程序退出遇到死循环问题
下面是我写的,我本来是想cin>>t,将t输入为q时退出循环,但是却遇到退不出而变成死循环问题,请大家帮忙看看~
#include<iostream>
#include<cstdio>
using namespace std;



int main()
{
char * ch="欢迎使用! 小程序!(输入q退出程序) \n\n";
char * ch1="请输入你需要的时间 (输入q结束输入):";
char * ch2=" 输入到到正确位置并保存 \n\n";
char * ch3="请将 ";
char * ch4="欢迎您的使用,你真的要退出程序吗?(Y/N): ";


cout<<ch;

cout<<ch1;
int t;
cin>>t;

while(t>=0&&t<=60)
{

cout<<dec<<t<<" = ";
cout<<hex<<t;
cout<<ch3;
cout<<hex<<t;
cout<<ch2;
cout<<ch1;
cin>>t;//为何在这里输入q就编程了无限循环了呢?
}
cout<<ch4;
return 0;
}

请帮我把程序改正确~我不知道是怎么回事,明明应该是当程序徐如不是数字时自动退出,但是我试了下,无论徐如什么字母都是死循环,但是输入不再条件范围内的数字却能正确退出,麻烦大家了~

猪头 发表于 2008-7-24 11:18

字母与整型在计算机中的长度不一样,可以根据这个用if作个判断
可以利用sizeof函数

沿途有鬼 发表于 2008-7-24 11:21

[quote][bo][un]猪头[/un] 在 2008-7-24 11:18 的发言:[/bo]

字母与整型在计算机中的长度不一样,可以根据这个用if作个判断
可以利用sizeof函数 [/quote]
我不知道如何做啊,我很菜,你能帮我写好吗?非常感谢啊~!

laoyi1986 发表于 2008-7-24 12:00

你只要输入0~60的数,它就一直循环,输入q,会出现“欢迎您的使用,你真的要退出程序吗?(Y/N): ”,程序编的没错

沿途有鬼 发表于 2008-7-24 13:02

[quote][bo][un]laoyi1986[/un] 在 2008-7-24 12:00 的发言:[/bo]

你只要输入0~60的数,它就一直循环,输入q,会出现“欢迎您的使用,你真的要退出程序吗?(Y/N): ”,程序编的没错 [/quote]
你把我的编译一下你就知道程序错了~

cnljd1988 发表于 2008-7-25 11:53

应该设置一个检测t值的语句if(t=="q")return;

jacksonchina 发表于 2008-7-26 12:55

t是整型的,怎么能够输入字符呢,是判断不了的,要不你的判断条件就改成q的ASCII码的值,也是整型的,应该就能解决了

页: [1]

编程论坛