问题描述
- C++问题, 为什么输入0.99会进入死循环
-
在学习C++时调试这段代码在month 输入**小于1的小数**时,进入死循环,还请大神帮忙解释一下,感谢int userYear, userMonth; cout<< "Please input year:"<<endl; cin >> userYear; cout<<"Please input month:"<<endl; cin >> userMonth; while(userMonth > 12 || userMonth < 1){ cout<<"The month is not legal, Please input again: "<<endl; cin >> userMonth; } ![图片说明](http://img.ask.csdn.net/upload/201602/20/1455933865_719630.png)
解决方案
0.99是小数,但是userMonth你用的是int,先解析出了1,进入循环,遇到.,cin不会读取新的userMonth,之后一直是1,就死了。
调试下就知道了。
解决方案二:
0.99取int是0,0<1 ,死循环
解决方案三:
你的usemonth是int型的,输入的0.99会当成1,所以死循环
时间: 2024-11-03 21:10:30