c++-C++问题, 为什么输入0.99会进入死循环

问题描述

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

c++-C++问题, 为什么输入0.99会进入死循环的相关文章

.COM域名在华促销0.99美元可注册

本报讯 (记者彭梧)全球最大的域名注册商GoDaddy昨天宣布,在中国开始有史以来力度最大的促销,用户挑选好域名后输入优惠码"BUYCOM99",就可以用0.99美元的价格注册.Com域名.不过0.99美元的GoDaddy域名必须通过信用卡支付,而且每张信用卡只能购买一个. 促成GoDaddy 发力 中国市场的直接原因是,另一家著名域名注册商IXWebHosting在中国的成功.今年9月开始支持支付宝的IXWebHosting目前有28.2%的流量来自中国,来自美国的流量只有19.3%

sfront 0.99发布 编译MPEG 4结构类型的音频方案

Sfront用于编译MPEG 4结构类型的音频(MP4-SA)方案,采用有效率的C语言程序执行并生成音频. MP4-SA是一个采用规范性算法的声音,它结合了音频信号处理语言(SAOL)与配乐语言(MIDI和SASL)为标准. sfront在Mac OS X和Linux中支持实时,低延迟音频输入/输出和MIDI输入.在Mac OS X中,sfront支持创建Audiohttp://www.aliyun.com/zixun/aggregation/29926.html">Unit插件.该文件包

Excel2010单元格输入0开头数字不显示怎么办

  Excel2010单元格输入0开头数字不显示怎么办           方法一.加单引号法 这是一种最为简便的方法,你只需在0的前面加上一个单引号'就可以了,这种方法适用于偶尔输入0开头的数字,如果是大批量或整行或整列,甚至是某个区域都需要输入0开头的数字,那么就可以下面的方法二了. 方法二.设置单元格格式法 这种方法是通过改变默认的单元格的数值格式,我们把单元格设置为文本类型就可以了,选中需要输入0开头的数字单元格,然后右击鼠标,在快捷菜单中选择"设置单元格格式",然后在&quo

excel输入0开头的数字

  方法一.加单引号法 这是一种最为简便的方法,你只需在0的前面加上一个单引号'就可以了,这种方法适用于偶尔输入0开头的数字,如果是大批量或整行或整列,甚至是某个区域都需要输入0开头的数字,那么就可以下面的方法二了. 方法二.设置单元格格式法 这种方法是通过改变默认的单元格的数值格式,我们把单元格设置为文本类型就可以了,选中需要输入0开头的数字单元格,然后右击鼠标,在快捷菜单中选择"设置单元格格式",然后在"数字"选项卡中选择"文本"就可以了.

js正则表达式 验证百分数,要求只能输入0%-100% 之间的数

问题描述 js正则表达式 验证百分数,要求只能输入0%-100% 之间的数 填写举例:0%.50%.100%,可能是0%-100%其中的任何数字,最多小数点后保留2位,例如97.51%/98.32%.? 解决方案 ^(100|[1-9]d|d)(.d{1,2})?%$ 解决方案二: Js中运用正则表达式验证输入是否有特殊字符 . 解决方案三: ^(100|[1-9]d|d)(.d{1,2})?%$ 解决方案四: ^([1-9]{1}[0-9]{0,1}|0|100)(.d{1,2}){0,1}%

winform-textbox输入0后控件消失问题

问题描述 textbox输入0后控件消失问题 c#winform中,textbox控件动态绑定在一个datagridview控件上,在textbox中输入其它字符都正常,但是一旦输入数字0,控件立刻消失,请问这个问题怎么解决? #region - 单元格点击触发事件 - private void mDGV_CellClick(object sender, DataGridViewCellEventArgs e) { if(e.RowIndex3) return; Rectangle rect =

mysql-dbvisualizer 9.1.6 mac tinyint(1)类型的字段只能输入0 1 ?

问题描述 dbvisualizer 9.1.6 mac tinyint(1)类型的字段只能输入0 1 ? dbvisualizer 连接mysql数据库,字段类型是tinyint(1), 编辑数据时只允许输入0或者1, 用sql语句可以更新成其他值,但是显示时还是0和1,怎么解决? 解决方案 MYSQL中没有布尔类型,但是如果你定义了布尔类型,它会自动给你转换成Tinyint.保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1), M

单个按键中断,得到加计数,2位动态显示,0—99。说明用到的硬件端口。

问题描述 单个按键中断,得到加计数,2位动态显示,0-99.说明用到的硬件端口. 单片机作业,请大家帮帮忙,指导指导-------------- 解决方案 呵呵,怎么帮忙?都给你搞好发给你? 解决方案二: 呵呵,怎么帮忙?都给你搞好发给你?

Godaddy九月连续推0.99美元特价域名招揽用户

9月10日消息:两个月前,国外多家域名注册商都提高了.com与.net的注册价格,新注册价格在10美元左右波动,与原先的注册价格相比有了小幅度的提升.虽然http://www.aliyun.com/zixun/aggregation/37916.html">国外域名注册商都响应威瑞信的涨价政策,不过都在采取各种优惠政策来降低涨价带来的影响.以九月为例,godaddy的政策最为明显,9月8日,godaddy推出第一个0.99美金特价域名优惠码,不到48小时,今天godaddy再次推出了 0.