verdadero variable true que logicas logica lenguaje falso expresiones booleano bool c++ overloading boolean

c++ - true - variable logica en c



C++ bool devuelve 0 1 en lugar de verdadero falso (4)

He sobrecargado iguales (incluidos == y! =) Que comprueban si dos objetos son iguales y luego devuelve un valor booleano.

Desafortunadamente, imprime 0 o 1. Sé que es correcto, pero no puedo encontrar la manera de imprimirlo en verdadero o falso para facilitar la lectura.

Incluso he intentado:

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

Sin embargo, C ++ es lo suficientemente obstinado como para generar 0 o 1.

Cualquier ayuda sería apreciada.

Editar - La impresión está hecha:

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

La salida deseada es

a == b es verdadero


Necesita usar std::boolalpha para imprimir verdadero / falso:

#include <iostream> int main() { std::cout << std::boolalpha << true << std::endl; }


Necesitas usar std::boolalpha :

cout << boolalpha << yourthing() << endl;


Puedes usar std::boolalpha :

Establece la bandera de formato boolalpha para el flujo de str.

Cuando se establece el indicador de formato boolalpha, los valores bool se insertan / extraen como sus nombres: verdadero y falso en lugar de valores integrales.

Esta bandera se puede desactivar con el manipulador noboolalpha.

El indicador boolalpha no se establece en las secuencias estándar en la inicialización.

std::cout.setf(std::ios::boolalpha); std::cout << true;

o

std::cout << std::boolalpha << true;


Si necesita hacer esto fuera de una salida de secuencia << , es una expresión ternaria simple:

std::string str = (a == b) ? "true" : "false";