2012-10-30 18 views
5

हे मैं चाहता था कि आप एक चरित्र '+' को ऑपरेटर में कैसे बदल सकते हैं। उदाहरण के लिए यदि मेरे पासऑपरेटर सी ++

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

धन्यवाद।

+3

<< ऑपरेटरों [सेशन] (6, 1);' – chris

+1

आप '6 सेशन 1' वाक्य रचना रखने के लिए चाहते हैं, तो नहीं, यह नहीं हो सकता है । –

+0

संकलित निर्देश और रनटाइम डेटा के बारे में सोचें। –

उत्तर

6

आसान तरीका एक स्विच बयान का उपयोग करने के लिए है

switch (op) 
{ 
case '+': 
    res = x + y; 
    break; 
case '-': 
    res = x - y; 
    break; 
case '*': 
    res = x * y; 
    break; 
} 
3

मैं वहाँ एक रास्ता के रूप में आप यह वहाँ लिखा है है नहीं लगता है, लेकिन आप की तरह कुछ hacky कर सकता है

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") 
    } 
} 
+5

मान्य सुझाव, bu यह हैकी से बहुत दूर है। –

+0

अच्छा नहीं, लेकिन मुझे लगता है कि यह वास्तव में ओपीएस प्रश्न की जड़ तक नहीं पहुंचता है। – Dan

+0

हाँ मुझे लगा कि स्विच जाने का रास्ता होगा लेकिन सोचा कि एक आसान तरीका हो सकता है। – wzsun

0

आप कर सकते हैं पुराने तरीके से #define का उपयोग करें:

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

हालांकि इसका सीमित उपयोग है।

यदि आप इसे शुद्ध सी ++ में करना चाहते हैं, तो आपको स्विच सिंटैक्स का स्पष्ट रूप से या बाहरी पुस्तकालय में उपयोग करना होगा (जैसे tetzfamily.com/temp/EvalDoc.htm या codeproject.com/Articles/7939/C- आधारित-अभिव्यक्ति-मूल्यांकन पुस्तकालय))।

एक और तरीका है बीसी की तरह एक बाहरी प्रोग्राम का उपयोग करने, है:

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

आप बाद में परिणाम का उपयोग करना चाहते हैं, तो जाँच popen समारोह या C++ equivalent

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; 


} 

}

एक नक्शा, `अदालत के साथ
+0

इसमें सभी अंकगणितीय परिचालन शामिल हैं। – user2722684

संबंधित मुद्दे