拜托,有没有办法直接从c ++中的用户获得布尔值响应?例如,我希望用户回答是或否,但我不想将响应存储在字符或字符串变量中,而是直接存储到布尔变量中。感谢。
答案 0 :(得分:1)
将变量声明为bool,并将输入设为0或1,分别视为false或true。
bool b;
cin >> b;
答案 1 :(得分:1)
class ReadBool {
public:
ReadBool(bool& v) : v_(v) {}
void Parse(istream& is) const {
string s;
is >> s;
v_ = (s == "yes"); // adjust to taste
}
private:
bool& v_;
};
istream& operator>>(istream& is, const ReadBool& rb) {
rb.Parse(is);
return is;
}
现在你可以做到
bool b;
cin >> ReadBool(b);