ホームページ >バックエンド開発 >C++ >C でブール値を整数ではなく文字列として出力するにはどうすればよいですか?

C でブール値を整数ではなく文字列として出力するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 09:03:02734ブラウズ

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

C でのブール値の出力 : 表示のデコード

C で出力ストリームにブール値を出力する場合、標準では表示結果のガイドラインが提供されています。

boolalpha Manipulator

デフォルトでは、std::cout は bool 値を整数として表示します。0 は false を表し、1 は true を表します。ただし、std::boolalpha マニピュレータはこの動作を変更し、ブール値を文字列 (false と true) として表示するようにストリームに指示します。

この変更を有効にするには、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;
}

ロケール固有の表現

この標準では、ブール値のローカライズされた表現も許可されています。ストリームに適切なロケールを組み込むことにより、ブール値を他の言語で表示されるとおりに出力できます。たとえば、フランス語では、boolalpha は false と true の代わりに faux と vrai を表示します。

この機能を使用するには、目的の言語をサポートするロケールをストリームに埋め込みます:

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

カスタム Numpunct ファセット

ブール値の表現を正確に制御する必要がある場合は、カスタム std::numpunct ファセットを作成できます。これにより、true 値と false 値として表示される正確な文字列を定義できます。

フランス語の例を次に示します:

#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;
}

以上がC でブール値を整数ではなく文字列として出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。