gpt4 book ai didi

c++ - 从命令行获取运算符并将它们用作代码中的运算符

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:41 27 4
gpt4 key购买 nike

我先举个例子

me@blabla ./example + 3 5

应该返回 8。

我接受了参数,但我如何将“+”从

char* opp = argv[1];  

到一个

+ 

在我的代码中使用?

因为我想使用很多运算符,有没有一种方法可以在不使用大型 if 语句的情况下做到这一点?

我希望这很清楚,谢谢!

最佳答案

您必须从 char 进行某种映射给运营商。假设你已经有了 35在一些整数变量中 xy ,简单的解决方案是使用 switch声明:

switch (opp[0]) {
case '+': result = x + y; break;
case '-': result = x - y; break;
// and so on...
}

或者,您可以使用 std::map来自 char s 至 std::function<int(const int&,const int&)> :

typedef std::function<int(const int&,const int&)> ArithmeticOperator;
std::map<char, ArithmeticOperator> ops =
{{'+', std::plus<int>()},
{'-', std::minus<int>()},
// and so on...
};

int result = ops[opp[0]](x,y);

关于c++ - 从命令行获取运算符并将它们用作代码中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656153/

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