编写 if 语句时出错"'=' : left operand must be l-value"
Error "'=' : left operand must be l-value" when writing an if-statement
我必须编写这段代码来运行骰子游戏,这是我的第一个游戏程序,我遇到了一些以前从未见过的错误,所以我已经尽力修复了它们。所以我只剩下这些错误:
'=' : left operand must be l-value
最后三个if语句。我知道这可能只是我问题的开始,但我对这一切都很陌生,所以非常感谢任何建议。
#include <iostream>
#include <ctime> //Include Header file for time functions
#include <cstdlib> //Include Header file for random number generators
#include "graph1.h"
using namespace std;
int main()
{
//Variable Declaration
int rv1 = 0; //Random number for the 1st dice
int rv2 = 0; //Random number for the 2nd dice
int seed=0;
int wager=0;
//Display graphics
displayGraphics();
cout<< "Wager";
cin>>wager;
//Initialize random number generator
srand(time(0));
//Generate two random numbers between 1 and 6 inclusive
rv1 = (rand()%6)+1; /* Function rand() generate a random number,
(rand()%6+1) generate a random number between 1&6 */
rv2 = (rand()%6)+1;
//rv1
if(rv1=1)
{cout<<displayBMP("1.bmp",200,150);}
else
{ if (rv1=2)
cout<<displayBMP("2.bmp",200,150);}
if (rv1=3)
{cout<<displayBMP("3.bmp",200,150);}
if (rv1=4)
{cout<<displayBMP("4.bmp",200,150);}
if (rv1=5)
{cout<<displayBMP("5.bmp",200,150);}
if (rv1=6)
{cout<<displayBMP("6.bmp",200,150);}
//rv2
if(rv2=1)
{cout<<displayBMP("1.bmp",200,250);}
if (rv2=2)
{cout<<displayBMP("2.bmp",200,250);}
if (rv2=3)
{cout<<displayBMP("3.bmp",200,250);}
if (rv2=4)
{cout<<displayBMP("4.bmp",200,250);}
if (rv2=5)
{cout<<displayBMP("5.bmp",200,250);}
if (rv2=6)
{cout<<displayBMP("6.bmp",200,250);}
if (wager<5)
{
cout<<displayBMP("smiley.bmp",250,100);
gout<<setPos(150,280)<<"Your wager of"<<wager<<"is less than required $5/";
gout<<setPos(150,295)<<"Please re-run program and enter larger amount!/n";
return-1;
}
if (((rv1+rv2)%2)=0)
{ gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
cout<<"You win $2 extra for even roll!/n";
cout<<"Your winnings:$2+Original Wager:$"<<wager<<"=$"<<wager+2<<endg;
}
if(rv1+rv2=7)
{gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
cout<<"Youre lucky today!/n";
cout<<"You double your wager/n";
cout<<"Your winnings:$10+Original Wager=$"<<wager<<"=$"<<wager*2<<endg;
}
if(((rv1+rv2)%2)=1)
{gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
cout<<"You lose $2 for odd roll!/n";
cout<<"Original Wager:$"<<wager<<"Losses:$2=$"<<wager-2<<endg;
}
return 0;
}
=
用于C++中的变量赋值。您需要使用==
进行比较测试:
if (((rv1+rv2)%2)==0)
也要注意,如果语句条件写成这样:
if(rv1=1)
由于CCD_ 3返回分配的结果CCD_。这就是为什么一些C++程序员编写这样的条件:
if(1==rv1)
防止您意外忘记第二个=
,因为:
if(1=rv1)
是一个编译时错误。当然,像这样的写作条件主要是风格的问题。我个人不使用这种方法,因为在我看来,它读起来不太好。
在if语句中处处使用赋值运算符=
,而不是从这里开始使用比较运算符==
if(rv1=1)
{cout<<displayBMP("1.bmp",200,150);}
必须有
if(rv1 == 1)
{cout<<displayBMP("1.bmp",200,150);}
等等。.
相关文章:
- 错误:"Left of getValue must have class/struct/union"
- 编译错误:"lvalue required as left operand of assignment" 不确定原因
- 如何在 GCC 中启用 C/C++ "Conditional with Omitted Operand"(又名猫王操作员 "?:" )
- 输出 [left]=input[i] 行中的 c++ 代码中存在无效的类型错误
- 是否可以覆盖 "find" 和 "erase" boost::bimaps::bimap.left 的方法?怎么办?
- C++指针算术"lvalue required as left operand of assignment"错误
- 为什么"operand = (operand*10) + (expression[i] - '0');"
- 重载运算符 [] 并且没有收到"lvalue required as left operand of assignment"错误
- 为什么这句话"The expression can be used only as the left-hand operand of a member function call"在 [expr.re
- 将链接哈希表初始化为 NULL。获取"lvalue required as left operand of assignment"错误。为什么?这是我的代码:
- 列表迭代器,"lvalue required as left operand of assignment"
- 编写 if 语句时出错"'=' : left operand must be l-value"
- "lvalue required as left operand of assignment"在奇怪的地方--C++
- "error: '=' : left operand must be l-value" ?(在三元中使用赋值时:)
- 编写链表时"lvalue required as left operand of assignment"错误
- 位域"In-class initialization"结果为"error: lvalue required as left operand of assignment"
- 错误:"lvalue required as left operand of assignment"
- C++错误"lvalue required as left operand of assignment"
- 如何调试提升元组错误"no operator found which takes a left-hand operand of type"
- 变换算法提供"binary '=' no operator which takes left-hand operand.."