我是C++的新手,我想知道在布尔数据的情况下函数cin是如何工作的.比方说吧:
bool a;
cin >> a;
Run Code Online (Sandbox Code Playgroud)
我明白,如果我给0或1,我的数据a将是真或假.但是如果我给另一个整数甚至字符串会发生什么?
我正在处理以下代码:
#include <iostream>
using namespace std;
int main() {
bool aSmile,bSmile;
cout << "a smiling ?" << endl;
cin >> aSmile;
cout << "b smiling ?" << endl;
cin >> bSmile;
if (aSmile && bSmile == true)
{
cout << "problem";
}
else cout << "no problem";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我为两个布尔值赋予0或1的值,则没有问题.但如果我给另一个整数,这是输出:
a smiling ?
9
b smiling ?
problem
Run Code Online (Sandbox Code Playgroud)
我没有被要求输入bSmile的任何值,"cin >> bSmile"似乎被跳过了.如果我给aSmile一个字符串值,也会发生同样的情况.
发生了什么 ?
大家好!:)