C++ で中国語の文字を入力するには 3 つの方法があります: マルチバイト文字の入力に特別に使用される std::wcin ストリームを使用します。 cin.imbue() を使用して、ストリームを zh_CN.UTF-8 などの特定のロケールに関連付けます。カスタム変換関数を使用して、UTF-8 以外でエンコードされた中国語文字をワイド文字に変換します。
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 中国語 Web サイトの他の関連記事を参照してください。