【发布时间】:2015-02-07 18:44:46
【问题描述】:
我认为我的 string to bool 函数不能正常工作。它无法处理条件 -
! ! ! !真的 && 真的
。它应该打印 1 而不是 0。
bool to_bool(string str) {
transform(str.begin(), str.end(), str.begin(), ::tolower);
istringstream is(str);
bool b;
is >> boolalpha >> b;
return b;
}
int main()
{
if(to_bool("! ! ! ! true && true"))
cout <<1;
else
cout <<0;
return 0;
}
有什么想法吗?
【问题讨论】:
-
标准 C++ 没有解析器
-
>>的文档是怎么说的?它是否说它支持任意布尔表达式?我的没有。 -
@linkas 我不清楚你想要什么,你是否期望
to_bool接受string并将其评估为逻辑表达式? -
是的。我不确定我是否做对了,但这个函数处理简单的请求(如“true || false”等)
-
>>不是布尔表达式解析器。它只是用来转换"true"或"false"而已。