我想從兩個或多個數字和字符運算符創建和表達。確切的情況是,我有兩個數字例如。使用數字和字符運算符創建表達式
float a = 10.1, b = 10.2;
和字符操作
char ch = '+';
現在我必須創建一個看起來像
float c = 10.1 '+' 10.2;
即我想申請在char變量「通道」中提到的運算符的表達式我有兩個浮點數之間。所以在這種情況下,字符是'+',所以我想要創建表達式,其中浮點值將被添加,如果' - '然後減法等等。所有的值實際上將由用戶提供,所以想要創建表達式並執行操作。
現在我想到的一個解決方案是爲不同的操作員設置開關盒,並且可以做到這一點。另一種是如下:
float a = 10.1, b = 20.3;
char ch = '+';
string result = "";
ostringstream os;
os << a;
result += os.str();
os.str("");
os << b;
result += ch + os.str();
現在我寫上面的片段,這樣我可以基於用戶輸入產生表達和比返回表達,以便它可以在另一個過程來評估它。
我不確定這是可能的。我的意思是開關櫃解決方案似乎很好,我在這裏評估表達式並返回輸出值,但只是想知道是否有方法將表達式返回給另一個函數,然後在那裏評估它? 在tcl腳本語言中,我們有一個命令「expr」,它執行相同的工作,所以想知道我們是否有能力在C++中做同樣的事情。任何幫助,將不勝感激。
無關,但創建該字符串的代碼是非常複雜的。這裏有三行相同的代碼:'ostringstream os; os << a << ch << b;字符串結果= os.str();' – 2013-04-30 18:06:03
謝謝康拉德,我剛剛從網上的例子複製代碼來獲得決議。沒有做任何代碼優化來滿足我的期望。很長的時間限制你知道:D – 2013-04-30 18:11:41