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; 作為一個小白感覺很困惑...有沒有大神能幫忙解答一下呢?十分感激!
2019-05-05
不同編譯器編譯時對這個bool值的真假定義也不一樣
2017-09-14
我在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兼容性不夠好呢。。。同樣希望看到大神的回答,萬分感激!
2017-09-14
所得到的