bool函数的返回值

初学C++,不是说bool函数,输入非0的数,输出都是1吗,为啥我输入个100,输出的却是0呢?

img

某些版本的编译器的cin输入bool值时仅支持0或1。非1的值都视为false(0).

可以输入整型值再强制转换:
int n ;
cin >> n ;
flag = static_cast(n);//类型转换时非0值都视为true

要进行类型转换,不转换会默认是false

http://t.csdn.cn/zT2ku

我特意为您做了一篇文章,您的问题不在于您思路的错误,而在于您选择版本的编译器有问题。

你可以参考下这篇文章:bool函数的使用

1.首先,你这不是强制转换
强制转换是这样的
int a=100;
bool b=a;
2.在格式化输入的时候,你必须按照规定的要求输入,否则会遇到不可知的后果
比如你使用scanf("%d")输入,但值赋值给了一个float类型的变量,那么程序会按照int的编码来读取输入,然后把对应的字节丢给float
那么按照float的编码格式读取出来的值肯定跟你输入的值是不同的
3.使用cin输入,它看起来比scanf更智能一些,但是其实也就更不灵活