Beim Drucken eines booleschen Werts in einen Ausgabestream in C stellt der Standard Richtlinien für das angezeigte Ergebnis bereit.
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; }
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; }
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!