簡體   English   中英

在此C ++代碼中我在做什么錯?

[英]What am I doing wrong in this C++ code?

#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”后命令提示符關閉。 我已經嘗試了一切,從更改循環類型到重新排列代碼,但是我嘗試的一切都是徒勞的。

bool值只能保持0或1(正確或錯誤)的值。 嘗試將newgame更改為char 另外,您正在使用賦值( = )而不是等於( == )。

另外,如果您嘗試循環(正如我認為您的問題所暗示的那樣),則需要在do...while循環中將變量聲明之外的所有內容包裝起來。

問題是==是相等的運算符,而不是=賦值的運算符。 發生的是這部分

if (newgame = "n")

{       newgame = false;
        return(123);
}

正在執行並以123退出。布爾值不存儲“ yes”和“ no”值,它們存儲1表示true,0表示false。

看起來不太近,但我看到很多if blah =的東西,我認為您可能想使用==而不是=,=在if語句中執行賦值==進行比較

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM