У меня есть следующие намерения:
Возьмите строку, такую как:
string test = "2.0+2.5";
и преобразовать это в двойной 4,5. Это возможно? Я также хочу распространить это на сложный тип. У меня больше опыта с Java, но я пытаюсь работать с C ++. Я попытался использовать stringstream, однако двойник, с которым у меня получилось, был только 2. Поэтому я полагаю, что он останавливается на «+». Спасибо за любую помощь или указатели.
Ты не можешь eval
Строки в C ++, как вы можете в таких языках, как Python так далее. Таким образом, вам нужно написать код для анализа оператора, что-то вроде:
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
в качестве альтернативы, вы можете использовать язык сценариев, как Python от ваш код C ++ для eval
утверждение в виде строки.