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";