Heim > Backend-Entwicklung > C++ > 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
Freigeben: 2024-10-28 09:03:02
Original
737 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage