Как импортировать из текстового файла пользовательскую переменную - PullRequest
0 голосов
/ 30 марта 2019

Итак, у меня есть небольшой словарь пользовательских переменных.Мой код в основном берет 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 для каждого?

...