7

文字「+」を演算子に変換する方法を知りたかったのです。たとえば、私が持っていた場合

char op = '+'
cout << 6 op 1;

ありがとう。

4

4 に答える 4

9

簡単な方法は、switch ステートメントを使用することです

switch (op)
{
case '+':
  res = x + y;
  break;
case '-':
  res = x - y;
  break;
case '*':
  res = x * y;
  break;
}
于 2012-10-30T15:29:10.633 に答える
4

あなたがそこに書いたように方法はないと思いますが、あなたは次のようなハッキーなことをすることができます

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")
    }
 }
于 2012-10-30T15:29:32.190 に答える
0
public class ArithmeticOps {

   static int testcase11 = 11;
   static int testcase12 = 3;
   static char testcase13 = '/';

   public static void main(String args[]){
        ArithmeticOps testInstance = new ArithmeticOps();
        int result = testInstance.compute(testcase11,testcase12,testcase13);
        System.out.println(result);
   } 


public int compute(int a, int b,char operator){
    int i=0;
    switch(operator)
    {

    case '+' :
        i= a+b;
        break;
    case '-' :
        i= a-b;
        break;
    case '*' :
        i= a*b;
        break;
    case '/' :
        i= a/b;
        break;
    case '%' :
        i= a%b;
        break;
    case '^' :
        i= a^b;
        break;
    default:
        i=0;
    }
    return i;


}

}

于 2013-08-27T17:58:04.097 に答える
0

古い方法の #define を使用できます。

#define op +
std::cout << 6 op 1;

ただし、用途が限られています。

純粋な C++ でこれを行う場合は、明示的に、または外部ライブラリ (tetzfamily.com/temp/EvalDoc.htm または codeproject.com/Articles/7939/C-based-Expression- など) でスイッチ構文を使用する必要があります。評価ライブラリ)))。

もう 1 つの方法は、bc のような外部プログラムを使用することです。

char op = '+';
std::string s;
s += "6";
s += op;
s += "4";
system(("echo " + s + "|bc").c_str());

結果を後で使用する場合は、popen関数または同等の C++を確認してください。

于 2012-10-30T16:35:31.513 に答える