gpt4 book ai didi

c++ - 在函数中使用文件中的字符串

转载 作者:太空狗 更新时间:2023-10-29 20:28:50 24 4
gpt4 key购买 nike

我在c++中有这个函数

double f_x(double y , string sfy )
{
return sfy;
}
  1. 我想从文件中读取字符串 sfy 并将其传递给 f_x 函数。
  2. sfy 包含类似 y 或 cos(y) 或 exp(y) 的内容。
  3. 当我将 y 和 sfy 传递给 f_x 时,我希望 f_x 计算 sfy 并将其返回。

我可以做数字 1 和 3,但问题是 f_x 的类型是 double 而 sfy 是字符串,所以我得到错误。

我不能将 f_x 的类型更改为任何其他类型,它应该是 double 或 float。

我怎样才能克服这个问题,即我应该怎么做才能使 f_x 将 sfy 返回为 double。

最佳答案

可能是这样的:

#include <map>
#include <string>
#include <fstream>
#include <iostream>
#include <cmath>

std::map<std::string, double(*)(double)> m;

double f_x(double y , std::string sfy )
{
if (m.find(sfy) == m.end()) throw "Invalid operation.";
return m[sfy](y);
}

int main()
{
m["exp"] = std::exp;
m["cos"] = std::cos;
m["sin"] = std::sin;

std::ifstream file("test.txt");
std::string op;
std::getline(file, op);

std::cout << f_x(42.0, op);
}

关于c++ - 在函数中使用文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com