首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符到运算符C++

字符到运算符C++
EN

Stack Overflow用户
提问于 2012-10-30 23:26:05
回答 4查看 26.4K关注 0票数 7

嘿,我想知道如何把一个字符'+‘变成一个运算符。例如,如果我有

代码语言:javascript
复制
char op = '+'
cout << 6 op 1;

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-30 23:29:11

切换方法是使用SImple语句

代码语言:javascript
复制
switch (op)
{
case '+':
  res = x + y;
  break;
case '-':
  res = x - y;
  break;
case '*':
  res = x * y;
  break;
}
票数 9
EN

Stack Overflow用户

发布于 2012-10-30 23:29:32

我不认为有一种像你写的那样的方法,但你可以做一些类似于

代码语言:javascript
复制
int do_op(char op, int a, int b)
{
    switch(op)
    {
    case '+':
       return a+b;
    break;
    case '-':
       return a-b;
    break;
    case '*':
       return a*b;
    break;
    case '/':
       return a/b;
    break;
    default:
        throw std::runtime_error("unknown op")
    }
 }
票数 4
EN

Stack Overflow用户

发布于 2012-10-31 00:35:32

你可以使用老办法#define:

代码语言:javascript
复制
#define op +
std::cout << 6 op 1;

然而,它的用途是有限的。

如果您想在纯C++中执行此操作,则必须显式地或在外部库(如tetzfamily.com y.com/temp/EvalDoc.htm或codeproject.com/Articles/7939/C-based-Expression-Evaluation-Library)). )中使用切换语法

另一种方法是使用外部程序,如bc:

代码语言:javascript
复制
char op = '+';
std::string s;
s += "6";
s += op;
s += "4";
system(("echo " + s + "|bc").c_str());

如果您想在以后使用结果,请检查popen函数或C++ equivalent

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13142270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档