任何人都可以解释下面的c ++代码结果吗?
input: true false 1
output: false, true, true,
#include <iostream>
using namespace std;
int main ()
{
bool c1, c2, c3;
cin >> c1 >> c2 >> c3;
cout << boolalpha << c1 << ", " << c2 << ", " << c3 << ", " << endl;//LINE I
return 0;
}
答案 0 :(得分:2)
答案 1 :(得分:0)
您操作的istream
对象(此处为cin
)要求0或1输入bool
,您的输入为true
。这导致操作失败,failbit
上设置了istream
,因为您没有检查输入是否失败,接下来的两个分配是c2
和{{ 1}}确实发生了,而是被跳过了。因此,c3
为false,因为输入操作失败。 c1
和c2
未被修改或初始化,因此可能具有任何价值。