C++ bool возвращает 0 1 вместо true false

У меня есть перегруженный equals (включая == и !=), который проверяет, равны ли два объекта, а затем возвращает булево значение.

К сожалению, она выводит 0 или 1. Я знаю, что это правильно, но я не могу понять, как заставить его выводить true или false для удобства чтения.

Я даже пробовал:

if (a.equals(b))
{
    return true;
}

return false;

Однако C++ достаточно упрям, чтобы выводить 0 или 1.

Любая помощь будет принята с благодарностью.

Edit - Print is done:

cout << "a == b is " << (a == b) << endl;

Desired output is

a == b is true

26
задан xBlue 24 November 2011 в 19:53
поделиться

2 ответа

Вам нужно использовать std::boolalpha:

cout << boolalpha << yourthing() << endl;
6
ответ дан 28 November 2019 в 06:43
поделиться

Если вам нужно сделать это вне потока вывода <<, это простое троичное выражение:

std::string str = (a == b) ? "true" : "false";
0
ответ дан 28 November 2019 в 06:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: