>  기사  >  백엔드 개발  >  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에서 부울 값을 출력 스트림으로 인쇄할 때 표준은 표시되는 결과에 대한 지침을 제공합니다.

부알파 조작기

기본적으로 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::numunct 패싯을 생성할 수 있습니다. 이를 통해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.