我在学习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,则结果为假,我不知道不知道这是否正确,但如果是正确的,那么如何理解非零为真?
我了解到非零值被认为是真实的
这只适用于代码中执行的转换,不适用于
std::cin >>
。 std::cin >>
如何读取标量类型在 here 进行了描述。
对于
bool
,它读取单个 long
值(因此,如果您传递小数,它会在 .
处停止读取)。如果是0
,则结果是false
,否则是true
。但如果该数字既不是 0
也不是 1
,它也会设置一个错误标志。
std::boolalpha
,则不会发生这种情况,而是需要字符串 true
或 false
(或其他字符串,如果您使用自定义区域设置)。