#include "stdafx.h"
#include <iostream>
#include <string>

void WorldBuilder();
bool Acceptor();

int main()
{
bool IsAcceptable = (false);

while (IsAcceptable == (false))
    {
        WorldBuilder(); // build world
            IsAcceptable = Acceptor();
    }
    return 0;
}

// Builds the world
void WorldBuilder()
{
std::cout << "Building World...\n";
return;
}

bool Acceptor()
    {
        std::cout << "Is world build acceptable? (y/n) ";
        std::string qIsAcceptable = "";
        std::cin >> qIsAcceptable;

if (qIsAcceptable[1] == 'y')
    {
        return (true);
    }
else if (qIsAcceptable[1] == 'n')
    {
        return (false);
    }

}


当我调试时,它不改变IsAcceptable布尔值而从其他值开始,然后返回WorldBuilder(),无论输入如何,布尔值都变为true。

我觉得关于布尔值一定有些我不了解的地方。

最佳答案

更改:

if (qIsAcceptable[1] == 'y')
    {
        return (true);
    }
else if (qIsAcceptable[1] == 'n')
    {
        return (false);
    }




if (qIsAcceptable[0] == 'y')
    {
        return (true);
    }
else if (qIsAcceptable[0] == 'n')
    {
        return (false);
    }


C / C ++数组算术从0而不是1开始。

关于c++ - 我在使用 boolean 接受器时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39311580/

10-10 21:56