5.【bool类型输入任何非0数值不为1的版本原因】

【visual studio 2022版】

7636f96bfa814c21ab8dd354bbad607c.png

 【即bool类型不赋初值】

#include <iostream>

using namespace std;

int main()

{

 bool x;

 cout << "请您手动输入bool的值为:" << endl;

 cin >> x;

 cout << "结果为:" << x << endl;

 return 0;

}

8d2288350b434e548a22cad22be920e0.png

==================== 5348bb843f134634ae71ce5d81b66b8c.png

【即bool赋初值】

#include <iostream>

using namespace std;

int main()

{

 bool x=false;

 cout << "请您手动输入bool的值为:" << endl;

 cin >> x;

 cout << "结果为:" <<boolalpha<< x << endl;

 return 0;

}

e9f220893ee8462394a7306751fd8b4d.png

 ==========================

【visual studio 2015版】

1f5dfe7ca3dc4bcdbdd624628e7419e5.png

【即bool类型不赋初值】 

#include <iostream>

using namespace std;

int main()

{

 bool x;

 cout << "请您手动输入bool的值为:" << endl;

 cin >> x;

 cout << "结果为:" << x << endl;

 return 0;

}

7043353b14da46abbdac0148f54d9efe.png

 ====================

b3204962c9fd4ace9affba983445bd0f.png

【当bool赋初值的时候(会变false)】

#include <iostream>

using namespace std;

int main()

{

 bool x=false;

 cout << "请您手动输入bool的值为:" << endl;

 cin >> x;

 cout << "结果为:" <<boolalpha<< x << endl;

 return 0;

}

d0a2e5951d714ccc8fc492c0f5af619d.png

为什么会变成这样?

因为当bool类型变量通过cin赋值时,如果输入”非0非1“,变量值不改变。也就是bool类型变量通过cin进行赋值只能键入0或者1,其他无效。

怎么更改呢?

一般通过设置中间量判断,再对bool变量进行间接赋值。无论对x有没有定义,通过int类型变量a来强制赋值bool类型变量x,有效解决上边出现的问题。

====================

【强制赋值】

#include <iostream>
using namespace std;
int main()
{
    bool x=false;
    cout << "请您手动输入bool的值为:" << endl;
    int a;
    cin >> a;
    x = a;
    cout << "结果为:" <<boolalpha<< x << endl;
    return 0;

}

256a9d5008b5423b9b3e1f2a3caa8fda.png

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值