C++ 中 bool 变量的赋值

问题描述 投票:0回答:1

我在学习C++ bool变量,我了解到非零值被认为是true,所以我使用cin给bool变量标志赋值,当我赋值为2时,cout标志为1,但是当我分配的值为 0.1,cout 标志为 0 请问这是怎么回事,我正在使用 Visual Studio 2022 我正在使用 Visual Studio 2022。

我尝试过其他数字如1.1、-1.1 0.5 -0.5,我的理解是绝对值大于1,则结果为真,绝对值小于1,则结果为假,我不知道不知道这是否正确,但如果是正确的,那么如何理解非零为真?

c++ boolean
1个回答
0
投票

我了解到非零值被认为是真实的

这只适用于代码中执行的转换,不适用于

std::cin >>
std::cin >>
如何读取标量类型在 here 进行了描述。

对于

bool
,它读取单个
long
值(因此,如果您传递小数,它会在
.
处停止读取)。如果是
0
,则结果是
false
,否则是
true
。但如果该数字既不是
0
也不是
1
,它也会设置一个错误标志。

如果您使用

std::boolalpha
,则不会发生这种情况,而是需要字符串
true
false
(或其他字符串,如果您使用自定义区域设置)。

© www.soinside.com 2019 - 2024. All rights reserved.