#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/