错误左值需要作为赋值 C++ 的左操作数
Error lvalue required as left operand of assignment c++
整个程序基本上只允许用户移动光标,如果用户在给定的坐标范围 (2,2) 内,则允许用户键入输入。我刚刚提供了一些我认为足以解决问题的代码。
我不知道是什么原因造成的problem.Can你也解释一下为什么会这样!!
void goToXY(int ,int);
创建了一个包含两个整数的函数。
int X = 0, Y = 0;
初始化了两个整数。
if(X = 2 && Y = 2){
cin >> input;
}
这是错误的地方(在上面)
void goToXY(int x = 0, int y = 0) {
COORD c;
c.X = x;
c.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
这是我定义函数的地方(在上面)
问题出在这个if语句
if(X = 2 && Y = 2){
cin >> input;
}
条件解释为
if(X = ( 2 && Y ) = 2){
cin >> input;
}
我想你是说
if(X == 2 && Y == 2){
cin >> input;
}
考虑到最好在函数声明而不是函数定义中包含默认参数,因为通常在编译单元中可见的是声明。
例如
void goToXY( int = 0, int = 0 );
您也可以在提供另一个默认参数的块作用域中重新声明该函数。
您遇到以下问题:
if(X = 2 && Y = 2){
cin >> input;
}
因为你用错了运算符(=
,不是==
),所以2 && Y
的优先级变多了。这被评估为:
if(X = (2 && Y) = 2){
cin >> input;
}
如果为真,将简化为:
if(X = true = 2){
cin >> input;
}
由于 true=2
这没有意义。修正代码为:
if(X == 2 && Y == 2){
cin >> input;
}
整个程序基本上只允许用户移动光标,如果用户在给定的坐标范围 (2,2) 内,则允许用户键入输入。我刚刚提供了一些我认为足以解决问题的代码。
我不知道是什么原因造成的problem.Can你也解释一下为什么会这样!!
void goToXY(int ,int);
创建了一个包含两个整数的函数。
int X = 0, Y = 0;
初始化了两个整数。
if(X = 2 && Y = 2){
cin >> input;
}
这是错误的地方(在上面)
void goToXY(int x = 0, int y = 0) {
COORD c;
c.X = x;
c.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
这是我定义函数的地方(在上面)
问题出在这个if语句
if(X = 2 && Y = 2){
cin >> input;
}
条件解释为
if(X = ( 2 && Y ) = 2){
cin >> input;
}
我想你是说
if(X == 2 && Y == 2){
cin >> input;
}
考虑到最好在函数声明而不是函数定义中包含默认参数,因为通常在编译单元中可见的是声明。
例如
void goToXY( int = 0, int = 0 );
您也可以在提供另一个默认参数的块作用域中重新声明该函数。
您遇到以下问题:
if(X = 2 && Y = 2){
cin >> input;
}
因为你用错了运算符(=
,不是==
),所以2 && Y
的优先级变多了。这被评估为:
if(X = (2 && Y) = 2){
cin >> input;
}
如果为真,将简化为:
if(X = true = 2){
cin >> input;
}
由于 true=2
这没有意义。修正代码为:
if(X == 2 && Y == 2){
cin >> input;
}