C++:表达式必须是可修改的左值
C++: Expression must be a modifiable lvalue
我正在制作一个基于文本的简单 operation/trig 计算器。我收到错误:"Expression must be a modifiable lvalue" 当我尝试对平方变量进行平方运算时。这是我当前的代码:(错误突出显示了 sqrt)
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
sqrt(pow(a, 2) + pow(b, 2)) = result;
cout << result << endl;
对于任何格式错误,我们深表歉意,第一个问题在这里提出,我们将不胜感激。谢谢!
您已经调换了作业。您正在尝试为 sqrt 函数分配结果值;您想将结果分配给 sqrt 输出的值:
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
result = sqrt(pow(a, 2) + pow(b, 2));
cout << result << endl;
将您的 cin
语句修改为 cin >> a >> b;
,这会一次读取多个值,因为 cin
不存在逗号运算符。此外,将赋值右侧的结果变量的顺序切换到左侧。赋值中=
的两个操作数是左值,代表左值,应该在左边,右值,代表右值,应该在右边.切换它们,你会得到一个错误。
您的新修改代码
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a >> b; //<-- See '>>' here
//sqrt(pow(a, 2) + pow(b, 2)) = result; <-- switch these to...
result = sqrt(pow(a, 2) + pow(b, 2)); //<-- ...this
cout << result << endl;
首先,cin >> a, b
does not do what you think it's doing。你最好写cin >> a >> b
。
然后,您将 data 分配给变量,而不是 variables 分配给数据。 result = sqrt(...)
也是如此。
主要问题是您的代码的行号 4
和 5
。
cin >> a,b;
是错误的。您可以像这样在一行中进行多次输入 cin >> a >> b;
在第 5 行中,您以错误的顺序进行赋值。你应该把它反转 result
这样 result = sqrt(pow(a, 2) + pow(b, 2)) ;
我正在制作一个基于文本的简单 operation/trig 计算器。我收到错误:"Expression must be a modifiable lvalue" 当我尝试对平方变量进行平方运算时。这是我当前的代码:(错误突出显示了 sqrt)
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
sqrt(pow(a, 2) + pow(b, 2)) = result;
cout << result << endl;
对于任何格式错误,我们深表歉意,第一个问题在这里提出,我们将不胜感激。谢谢!
您已经调换了作业。您正在尝试为 sqrt 函数分配结果值;您想将结果分配给 sqrt 输出的值:
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
result = sqrt(pow(a, 2) + pow(b, 2));
cout << result << endl;
将您的 cin
语句修改为 cin >> a >> b;
,这会一次读取多个值,因为 cin
不存在逗号运算符。此外,将赋值右侧的结果变量的顺序切换到左侧。赋值中=
的两个操作数是左值,代表左值,应该在左边,右值,代表右值,应该在右边.切换它们,你会得到一个错误。
您的新修改代码
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a >> b; //<-- See '>>' here
//sqrt(pow(a, 2) + pow(b, 2)) = result; <-- switch these to...
result = sqrt(pow(a, 2) + pow(b, 2)); //<-- ...this
cout << result << endl;
首先,cin >> a, b
does not do what you think it's doing。你最好写cin >> a >> b
。
然后,您将 data 分配给变量,而不是 variables 分配给数据。 result = sqrt(...)
也是如此。
主要问题是您的代码的行号 4
和 5
。
cin >> a,b;
是错误的。您可以像这样在一行中进行多次输入 cin >> a >> b;
在第 5 行中,您以错误的顺序进行赋值。你应该把它反转 result
这样 result = sqrt(pow(a, 2) + pow(b, 2)) ;