这似乎是一个愚蠢的问题,但我很难过.这是我的代码:
int main()
{
string line, command;
getline(cin, line);
stringstream lineStream(line);
bool active;
lineStream >>active;
cout <<active<<endl;
}
Run Code Online (Sandbox Code Playgroud)
无论我输入什么活动,它总是打印出来0.所以我要说我的输入是
true
Run Code Online (Sandbox Code Playgroud)
它输出0和false同样的东西.
Die*_*ühl 14
您应该始终验证您的输入是否成功:您会发现它不是.您想要1使用当前设置尝试该值:
if (lineStream >> active) {
std::cout << active << '\n';
}
else {
std::cout << "failed to read a Boolean value.\n";
}
Run Code Online (Sandbox Code Playgroud)
如果你希望能够进入true和false,你需要使用std::boolalpha:
if (lineStream >> std::boolalpha >> active) {
std::cout << std::boolalpha << active << '\n';
}
Run Code Online (Sandbox Code Playgroud)
格式化标志更改格式的方式bool使用依赖于区域设置的字符串.
| 归档时间: |
|
| 查看次数: |
8042 次 |
| 最近记录: |