在 C 中將布林值列印到輸出流時,該標準為顯示結果提供了指導。
預設情況下,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; }
如果您需要精確控制布林值的表示,您可以建立自訂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中文網其他相關文章!