std::boolalpha în C++

Formatare C++98

Afișează și citește valorile bool ca true/false în loc de 1/0.

Sintaxă
#include <iomanip>
std::cout << std::boolalpha;    // true / false
std::cout << std::noboolalpha;  // 1 / 0

Ce face std::boolalpha

Implicit, std::cout << true afișează 1. După std::cout << std::boolalpha, valorile bool apar ca true și false, până la std::noboolalpha.

Pe un flux de intrare, std::boolalpha face ca >> să accepte cuvintele true/false în loc de 1/0. std::println afișează oricum true/false.

Exemple

Exemplul 1: Afișarea valorilor bool

#include <iomanip>
#include <iostream>

int main() {
    int varsta = 17;
    bool major = varsta >= 18;
    std::cout << "Major: " << major << '\n';
    std::cout << std::boolalpha;
    std::cout << "Major: " << major << '\n';
    std::cout << "5 > 3: " << (5 > 3) << '\n';
    std::cout << std::noboolalpha << "Înapoi la cifre: " << (5 > 3) << '\n';
}

Rezultat

Major: 0
Major: false
5 > 3: true
Înapoi la cifre: 1

Exemplul 2: Citirea cuvintelor true/false

#include <iomanip>
#include <iostream>
#include <sstream>

int main() {
    std::istringstream setari("true false");
    bool notificari = false, mod_intunecat = true;
    setari >> std::boolalpha >> notificari >> mod_intunecat;
    std::cout << std::boolalpha;
    std::cout << "Notificări: " << notificari << '\n';
    std::cout << "Mod întunecat: " << mod_intunecat << '\n';
}

Rezultat

Notificări: true
Mod întunecat: false

Greșeli frecvente

  • Citești true fără std::boolalpha: citirea eșuează, pentru că implicit se așteaptă 1 sau 0.

Comenzi înrudite

  • std::cout: Afișează text și valori în consolă, cu operatorul <<.
  • std::hex: Afișează și citește numerele întregi în baza 16 (hex), 8 (oct) sau 10 (dec).
  • std::showpos: Afișează semnul + în fața numerelor pozitive (și a lui zero).