Итак, у меня есть небольшой словарь пользовательских переменных.Мой код в основном берет txt-файл, сгенерированный пользователем, и выполняет некоторые математические вычисления.Что мне нужно сделать, так это получить входные данные из txt-файла и вычислить уравнение.
Я попытался импортировать его в виде строки и разделить, чтобы затем умножить 2 переменные вместе.Затем я пытаюсь изменить их на удвоения, используя статическое приведение.Однако, так как это определенная пользователем строка, программа продолжает выдавать мне ошибки.
как я объявляю мою определенную переменную:
define RG8F 108.9873216748352845
как это выглядит в текстовом файле:
RG8F*23.7
как я ее импортирую:
string line;
ifstream file("path\to\file")
getline(file, line)
input.result= evaluate(line);
оценка функции (первая попытка):
double evaluate(string exp)
{
size_t sign=exp.find('*');
string number = exp.substr(0,sign);
string type = exp.substr(sign+1)
double result = static_cast<double>(stoi(number));
double type2 = static_cast<double>(stoi(type));
return result*type2;
}
ошибка: неверный аргумент при выделении памяти
оценка функции (вторая попытка)):
double evaluate(string exp)
{
size_t sign=exp.find('*');
string number = exp.substr(0,sign);
string type = exp.substr(sign+1)
double result = static_cast<double>(stoi(number));
return result*type;
}
ошибка: ни один оператор * не соответствует этим операндам
функция оценки (третья попытка):
double evaluate(string exp)
{
size_t sign=exp.find('*');
string number = exp.substr(0,sign);
string type = exp.substr(sign+1)
double type2 = 0;
double result = static_cast<double>(stoi(number));
if (type == "RG8F")
type2 = RG8F
return result*type2;
}
Проблема: у меня есть библиотека, заполненная пользователем-определенные переменные и не хотят, чтобы каждый, так как это займет вечность.Есть ли способ использовать пользовательскую переменную вместо использования if для каждого?