为了账号安全,请及时绑定邮箱和手机立即绑定

c++的布尔值疑问

c++的布尔值疑问

狐的传说 2018-07-22 00:19:58
之前在慕课网上看自学视频,有一段代码很困惑:bool y = false;cout << " 请输入一个布尔值 " << endl;cin >> y;cout << boolalpha << y <<endl;这段代码如果我输入的是非0和1的整数,那么输出的结果是false,但是正常的思想不应该是非0既true么?然后我很困惑,就打了下面的代码:bool a = 10;cout << a << endl;直接声明一个bool类型的 a = 10,输出的结果是true;但是如果我事先声明一个bool类型的变量a,把在终端输入10赋值给这个a;那么就会输出false.我有点儿理解不上去了,有没有大神能指点一下??
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

简而言之就是,从cin读入除0、1外的字符(包括其他数字或字母)给bool时,cin已经处于错误状态了。可用if (cin)检查错误。


查看完整回答
反对 回复 2018-07-24
  • 2 回答
  • 0 关注
  • 940 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信