因此,我基本上有一个用户定义变量的微型字典。我的代码基本上所做的是获取用户生成的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?