如何从txt文件导入用户定义的变量

时间:2019-03-30 15:27:01

标签: c++ variables user-defined-types

因此,我基本上有一个用户定义变量的微型字典。我的代码基本上所做的是获取用户生成的txt文件并进行一些数学计算。我需要做的是从txt文件获取输入并计算公式。

我尝试将其作为字符串导入并分离,以便稍后将2个变量相乘。然后,我尝试使用静态强制转换将它们更改为两倍。但是,由于它是用户定义的字符串,因此该程序不断给我错误。

我如何声明定义的变量:

define RG8F 108.9873216748352845

它在txt文件中的显示方式:

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;
}

错误:内存分配时出现Invalid_argument

评估功能(第二次尝试):

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?

0 个答案:

没有答案