>  기사  >  백엔드 개발  >  C++에서 한자를 입력하는 방법

C++에서 한자를 입력하는 방법

下次还敢
下次还敢원래의
2024-05-09 04:12:20366검색

C++에서 중국어 문자를 입력하는 방법에는 세 가지가 있습니다. 특히 멀티바이트 문자를 입력하는 데 사용되는 std::wcin 스트림을 사용합니다. cin.imbue()를 사용하여 스트림을 zh_CN.UTF-8과 같은 특정 로케일에 연결합니다. 사용자 정의 변환 기능을 사용하여 UTF-8로 인코딩되지 않은 중국어 문자를 와이드 문자로 변환합니다.

C++에서 한자를 입력하는 방법

C++에서 한자를 입력하는 방법

소개:
C++에서 한자를 입력하려면 멀티바이트 문자 인코딩을 처리해야 합니다. 이 기사에서는 std::wcin, cin.imbue() 및 사용자 정의 변환 함수 사용을 포함한 일반적인 방법을 살펴봅니다.

std::wcin 사용:
std::wcin 스트림은 와이드 문자, 즉 멀티바이트 문자를 입력하는 데 사용됩니다. UTF-16 또는 UTF-32로 인코딩된 중국어 문자를 수신할 수 있습니다.

<code class="cpp">#include <iostream>

int main() {
  wchar_t ch;
  std::wcin >> ch;
  std::cout << ch << std::endl;
  return 0;
}</code>

cin.imbue() 사용:
cin.imbue() 함수는 스트림을 문자 인코딩을 지정하는 특정 로캘에 연결할 수 있습니다. 중국어 문자 입력의 경우 zh_CN.UTF-8 또는 UTF-8 인코딩을 지원하는 다른 로케일을 사용할 수 있습니다.

<code class="cpp">#include <iostream>
#include <locale>

int main() {
  std::cin.imbue(std::locale("zh_CN.UTF-8"));
  char ch;
  std::cin >> ch;
  std::cout << ch << std::endl;
  return 0;
}</code>

사용자 정의 변환 기능 사용:
UTF-8로 인코딩되지 않은 중국어 문자의 경우 사용자 정의 변환 기능을 사용하여 멀티바이트 문자를 와이드 문자로 변환할 수 있습니다. GB2312 인코딩을 예로 들어보겠습니다.

<code class="cpp">#include <iostream>
#include <codecvt>

std::wstring gb2312_to_wstring(const char* gb2312) {
  std::codecvt_utf8<wchar_t> cvt;
  std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
  return conv.from_bytes(gb2312);
}

int main() {
  char gb2312[] = "你好";
  std::wstring wstr = gb2312_to_wstring(gb2312);
  std::wcout << wstr << std::endl;
  return 0;
}</code>

위 내용은 C++에서 한자를 입력하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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