Heim  >  Artikel  >  Backend-Entwicklung  >  Wie drucke ich boolesche Werte in C als Zeichenfolgen anstelle von Ganzzahlen?

Wie drucke ich boolesche Werte in C als Zeichenfolgen anstelle von Ganzzahlen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 09:03:02634Durchsuche

How do I print boolean values in C   as strings instead of integers?

Boolesche Werte in C drucken: Anzeige dekodieren

Beim Drucken eines booleschen Werts in einen Ausgabestream in C stellt der Standard Richtlinien für das angezeigte Ergebnis bereit.

Der Boolalpha-Manipulator

Standardmäßig zeigt std::cout Bool-Werte als ganze Zahlen an, wobei 0 für „falsch“ und 1 für „wahr“ steht. Der Manipulator std::boolalpha ändert dieses Verhalten jedoch und weist den Stream an, boolesche Werte als Zeichenfolgen anzuzeigen: false und true.

Um diese Änderung zu aktivieren, verwenden Sie std::cout << std::boolalpha;:

<code class="cpp">#include <iostream>
#include <iomanip>

int main() {
    std::cout << false << "\n";  // Prints 0
    std::cout << std::boolalpha;
    std::cout << false << "\n";  // Prints false
    return 0;
}

Gebietsspezifische Darstellung

Der Standard ermöglicht auch die lokalisierte Darstellung boolescher Werte. Indem Sie den Stream mit dem entsprechenden Gebietsschema versehen, können Sie boolesche Werte so drucken, wie sie in anderen Sprachen erscheinen. Auf Französisch würde boolalpha beispielsweise „falsch“ und „vrai“ anstelle von „falsch“ und „wahr“ anzeigen.

Um diese Funktion zu nutzen, versehen Sie den Stream mit einem Gebietsschema, das die gewünschte Sprache unterstützt:

<code class="cpp">#include <iostream>
#include <iomanip>
#include <locale>

int main() {
    std::cout.imbue(std::locale("fr"));
    std::cout << false << "\n";  // Prints 0
    std::cout << std::boolalpha;
    std::cout << false << "\n";  // Prints faux
    return 0;
}

Benutzerdefinierte Numpunct-Facette

Wenn Sie eine präzise Kontrolle über die Darstellung boolescher Werte benötigen, können Sie eine benutzerdefinierte std::numpunct-Facette erstellen. Dadurch können Sie die genauen Zeichenfolgen definieren, die für wahre und falsche Werte angezeigt werden.

Hier ist ein Beispiel für Französisch:

#include 
#include 
#include 
#include 
#include 

class my_fr : public std::numpunct< char > {
protected:
    char do_decimal_point() const { return ','; }
    char do_thousands_sep() const { return '.'; }
    std::string do_grouping() const { return ""; }
    std::string do_truename() const { return "vrai";  }
    std::string do_falsename() const { return "faux"; }
};

int main() {
    std::cout.imbue(std::locale(std::locale(), new my_fr));
    std::cout << false << "\n";  // Prints 0
    std::cout << std::boolalpha;
    std::cout << false << "\n";  // Prints faux
    return 0;
}

Das obige ist der detaillierte Inhalt vonWie drucke ich boolesche Werte in C als Zeichenfolgen anstelle von Ganzzahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn