C++返回bool总是假的?

  发布于 2023-02-11 15:44

我实施了一个测验代码,并在最后做了一个简短的更改,以检查用户是否正确回答了它.

我的if/else看起来像这样:

   if (answer == rightanswer){
        rightA = true;
    }
    else {
        rightA = false;
    }

    return rightA;

我已经用调试器检查过,如果输入正确答案,则转到rightA = true; 并返回,所以这是有效的.但是,如果我检查rightA的值,那就是假的.如果需要,这是我用来调用测验的函数:

void gameOver(char field[HEIGHT][WIDTH], char newField[HEIGHT][WIDTH]){ // TODO

    bool rightA = false;
    showQuizDialog(rightA);
    do{
    system("cmd /c cls");

    switch (rightA){
        case true : cout << "menu"; menu(field, newField); break;
        case false : showQuizDialog(rightA); break;
        default : cout << " ";
    }
    }while(rightA == false);


    }

我有点暗示.我可能有一些逻辑上的失败,我现在还没有看到.问候

E:我不想用代码轰炸你们.但就是这样:

bool showQuizDialog(bool rightA){

    Quiz* quiz = Quiz::getInstance();
    quiz -> askQuestion(rightA);
        return rightA;


}

并且完整的问题问题:

    bool Quiz::askQuestion(bool rightA) {

    int fragenID = rand() % this->fragen.size(); //zufällige Fragen auswählen
    struct Question frage = this->fragen.at(fragenID);
    std::cout << frage.frage.c_str() << std::endl << endl; //Frage stellen

    int rightanswer = this->listAnswers(frage.antworten);
    int answer = this->readAnswer(0, frage.antworten.size() - 1);

    if (answer == rightanswer){
        rightA = true;
    }
    else {
        rightA = false;
    }

    return rightA;
}

Luchian Grig.. 9

showQuizDialog(rightA)应该幻化的价值rightA?(我假设你没有通过引用传递它).

你的意思是写rightA = showQuizDialog(rightA)还是rightA = quiz -> askQuestion(rightA)

此外,在您switch打开bool时,您是否期望除a true或a 之外的任何其他值false

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有