首頁  >  文章  >  後端開發  >  如何在 C 中將布林值列印為字串而不是整數?

如何在 C 中將布林值列印為字串而不是整數?

Patricia Arquette
Patricia Arquette原創
2024-10-28 09:03:02634瀏覽

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

在 C 中列印布林值:解碼顯示

在 C 中將布林值列印到輸出流時,該標準為顯示結果提供了指導。

boolalpha 操縱器

預設情況下,std::cout 將 bool 值顯示為整數,0 代表 false,1 代表 true。但是, std::boolalpha 操縱器修改了此行為,指示流將布林值顯示為字串: false 和 true。

要啟用此更改,請使用std::cout

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

區域特定表示

該標準還允許布爾值的本地化表示。透過為流注入適當的區域設置,您可以列印以其他語言顯示的布林值。例如,在法語中,boolalpha 將顯示 faux 和 vrai,而不是 false 和 true。

要使用此功能,請為流注入支援所需語言的區域設定:

<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 Facet

如果您需要精確控制布林值的表示,您可以建立自訂std::numpunct Facet。這將允許您定義為 true 和 false 值顯示的確切字串。

以下是法文範例:

<code class="cpp">#include <array>
#include <string>
#include <locale>
#include <ios>
#include <iostream>

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

以上是如何在 C 中將布林值列印為字串而不是整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn