#include <cstdlib>
#include <ctime>
#include <iostream>
int main()
{
bool newgame;
std::cout << " Ready to waste more family money gambling? y/n ";
std::cin >> newgame;
if (newgame = "n")
{
newgame = false;
return(123);
}
else if (newgame = "y")
{
srand(time(NULL));
int number = rand() % 10;
int guess;
std::cout << "Pick your number ";
std::cin >> guess;
if (guess == number)
{
std::cout << "Winner!";
}
else
{
std::cout << "Loser!";
}
}
}
我不明白自己在这里做错了什么,所发生的一切就是在键入“ y”或“ n”后关闭命令提示符。我已经尝试了一切,从更改循环类型到重新排列代码,但是我尝试的一切都是徒劳的。
问题是==是相等的运算符,而不是=赋值的运算符。发生的是,这部分在这里,
if (newgame = "n")
{ newgame = false;
return(123);
}
正在执行并以123退出。布尔值不存储“ yes”和“ no”值,它们存储1表示true,0表示false。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句