>백엔드 개발 >C++ >cout을 사용할 때 wchar_t 문자열이 문자 대신 16진수 값으로 인쇄되는 이유는 무엇입니까?

cout을 사용할 때 wchar_t 문자열이 문자 대신 16진수 값으로 인쇄되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-16 15:43:03185검색

Why are wchar_t strings printed as hex values instead of characters when using cout?

wchar_t 값을 콘솔에 인쇄

코드에서 표준 출력 스트림( 쿠우트). 그러나 이로 인해 실제 문자 대신 16진수 값이 인쇄됩니다. wchar_t 문자열을 올바르게 인쇄하려면 와이드 문자 출력 스트림(wcout)을 대신 사용해야 합니다.

제공한 예를 고려하십시오.

#include <iostream>

using namespace std;

int main() {
    wchar_t en[] = L"Hello";
    wchar_t ru[] = L"Привет"; // Russian language
    cout << ru << endl << en; // Prints hex values
    return 0;
}

wchar_t 문자열을 올바르게 인쇄하려면 cout을 바꾸십시오. with wcout:

...
    wcout << ru << endl << en; // Prints actual characters
...

이러한 변경으로 프로그램은 러시아어 문자를 출력합니다. 예상대로 "Привет" 및 "Hello"입니다. 기본 로케일은 wchar_t 문자열의 모든 문자를 지원하지 않을 수 있으므로 일부 문자가 올바르게 표시되지 않을 수 있습니다.

위 내용은 cout을 사용할 때 wchar_t 문자열이 문자 대신 16진수 값으로 인쇄되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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