我正在使用方程式进行赋值,但是我不知道如何输入方程式的不同部分。

等式始终采用以下格式:
[double] [x / y / z] [sign] [double] [x / y / z] [sign] [double] [x / y / z] = [double]。

范例:2.5y + 4.7x + 7z = 46

为此,我尝试使用四个 double 变量和六个字符变量。

将a,d,g,j加倍;

字符b,c,e,f,h,i;

这样方程就可以分解为变量a b c d e f g h i,然后我可以对其进行操作。

如果方程中的任何地方都有空格,我本可以使用istringstream对其进行拆分,但没有。我不允许更改输入文件。

如何将数字加倍,字母/符号加字符?

最佳答案

您可以使用istringstream和流外运算符。
例如:

std::istringstream iss("2.5y+4.7x+7z=46");
double a,b,c,s;
char v1,v2,v3;
iss >> a; // read 1st koef
iss >> v1; // read 1st var's name
iss >> b; // read 2nd koef
iss >> v2; // read 2nd var's name
iss >> c; // read 3rd koef
iss >> v3; // read 3rd var's name
iss.ignore(); // skip '=' symbol
iss >> s; // read sum

等式中的符号是相关系数的符号。

10-08 08:56