複数の数値と文字演算子から式を作成しようとしています。正確なシナリオは、たとえば 2 つの番号があることです。
float a = 10.1, b = 10.2;
および文字演算子
char ch = '+';
次に、次のような式を作成する必要があります
float c = 10.1 '+' 10.2;
つまり、私が持っている2つの浮動小数点数の間に、char変数「ch」に記載されている演算子を適用したいと考えています。したがって、この場合、文字は「+」であるため、「-」の場合は減算など、両方の浮動小数点値が加算される式を作成したいと考えています。すべての値は実際にはユーザーによって提供されるため、式を作成したいそして、操作を実行します。
今私が考えた解決策の 1 つは、さまざまな演算子の大文字と小文字を切り替えることであり、それでうまくいきます。もう一つは以下です:
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++ で同じことをする能力があるかどうか疑問に思っていました。どんな助けでも大歓迎です。