我在这个C++代码中做错了什么

What am I doing wrong in this C++ code?

本文关键字:错了 什么 代码 C++      更新时间:2023-10-16
#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"answers"no"值,它们存储1表示true,0表示false。

bool只能包含值0或1(true或false(。尝试将newgame更改为char。此外,您使用的是赋值(=(而不是相等(==(。

此外,如果您试图循环(我认为您在问题中暗示了这一点(,您将希望在do...while循环中包装变量声明之外的所有内容。

看起来不太近,但我看到了很多if blah=东西,我认为你可能想使用==而不是=,=在if语句中进行赋值==进行比较