Es gibt drei Möglichkeiten, chinesische Zeichen in C++ einzugeben: Verwenden Sie den Stream std::wcin, der speziell für die Eingabe von Multibyte-Zeichen verwendet wird. Verwenden Sie cin.imbue(), um den Stream einem bestimmten Gebietsschema zuzuordnen, z. B. zh_CN.UTF-8. Konvertieren Sie nicht UTF-8-codierte chinesische Zeichen mithilfe einer benutzerdefinierten Konvertierungsfunktion in Breitzeichen.
So geben Sie chinesische Zeichen in C++ ein
Einführung:
Die Eingabe chinesischer Zeichen in C++ erfordert den Umgang mit der Multibyte-Zeichenkodierung. In diesem Artikel werden gängige Methoden untersucht, einschließlich der Verwendung von std::wcin, cin.imbue() und benutzerdefinierten Konvertierungsfunktionen.
Verwendung von std::wcin:
std::wcin-Stream wird zur Eingabe von Breitzeichen, d. h. Multibyte-Zeichen, verwendet. Es kann UTF-16- oder UTF-32-codierte chinesische Zeichen empfangen.
<code class="cpp">#include <iostream> int main() { wchar_t ch; std::wcin >> ch; std::cout << ch << std::endl; return 0; }</code>
Verwendung von cin.imbue(): Die Funktion
cin.imbue() kann einen Stream einem bestimmten Gebietsschema zuordnen, das die Zeichenkodierung angibt. Für die Eingabe chinesischer Zeichen können Sie zh_CN.UTF-8 oder andere Gebietsschemas verwenden, die die UTF-8-Codierung unterstützen.
<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>
Benutzerdefinierte Konvertierungsfunktion verwenden:
Für nicht UTF-8-codierte chinesische Zeichen können Sie die benutzerdefinierte Konvertierungsfunktion verwenden, um Multibyte-Zeichen in Breitzeichen umzuwandeln. Nehmen Sie als Beispiel die GB2312-Kodierung:
<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>
Das obige ist der detaillierte Inhalt vonSo geben Sie chinesische Zeichen in C++ ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!