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

bool值输入之后编译的问题

看教学视频之后实操,同样一段代码:

#include <iostream>

using namespace std;

int main ()

{

bool a = false;

cout << "请输入一个整数" << endl;

cin >> a;

cout << boolalpha << a << endl;

system("pause");

return 0;

}

用vs2010编译之后,在终端输入非0和1的整数,输出结果是false;用sublime3搭建的开发环境下输入的结果就是true; 作为一个小白感觉很困惑...有没有大神能帮忙解答一下呢?十分感激!

正在回答

3 回答

不同编译器编译时对这个bool值的真假定义也不一样

0 回复 有任何疑惑可以回复我~

我在vs2010编译之后,(1)输入为1,输出为true;(2)输入为0,输出为false;(3)输入为3,输出为false
在CodeBlocks编译之后,(1)输入为1,输出为true;(2)输入为0,输出为false;(3)输入为3,输出为true
我觉得是对于所有非零值的布尔值都应该是true,只有0对应false。但是vs2010为啥是这个结果,我猜是不是vs2010兼容性不够好呢。。。同样希望看到大神的回答,万分感激!

0 回复 有任何疑惑可以回复我~

所得到的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之起航篇
  • 参与学习       291032    人
  • 解答问题       760    个

C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华

进入课程

bool值输入之后编译的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信