我有以下意图:
取一个字符串,如:
string test = "2.0+2.5";
并将其转换为双4.5。这可能吗?我也想将它扩展到复杂类型。我有更多Java经验,但我正在尝试使用C ++。我试图使用stringstream,但是我最终得到的两倍只是2.所以我想它停在“+”。感谢您的帮助或指示。
答案 0 :(得分:2)
在C ++中你不能像Python 等这样的scipted语言中使用eval
字符串。所以你必须编写代码来解析语句,如:
double v1 = lexical_cast<double>( /* extract "2.0" from test */);
double v2 = lexical_cast<double>( /* extract "2.5" from test */);
double result = 0.0;
char op = // extract '+' from test
switch(op) {
case '+':
result = v1 + v2;
break;
// etc
或者,您可以使用脚本语言(如从 C ++代码)到eval
语句作为字符串。