在 C++ 中输入汉字可以通过三种方法:使用 std::wcin 流,专门用于输入多字节字符。使用 cin.imbue() 将流关联到特定 locale,例如 zh_CN.UTF-8。使用自定义转换函数将非 UTF-8 编码的汉字转换为宽字符。

如何在 C++ 中输入汉字
引言:
在 C++ 中输入汉字需要处理多字节字符编码。本文将探讨常用的方法,包括使用 std::wcin、cin.imbue() 和自定义转换函数。
使用 std::wcin:
std::wcin 流用于输入宽字符,即多字节字符。它可以接收 UTF-16 或 UTF-32 编码的汉字。
#include <iostream>
int main() {
wchar_t ch;
std::wcin >> ch;
std::cout << ch << std::endl;
return 0;
}使用 cin.imbue():
cin.imbue() 函数可以将流关联到特定的 locale,该 locale 指定字符编码。对于汉字输入,可以使用 zh_CN.UTF-8 或其他支持 UTF-8 编码的 locale。
立即学习“C++免费学习笔记(深入)”;
#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;
}使用自定义转换函数:
对于非 UTF-8 编码的汉字,可以使用自定义转换函数将多字节字符转换为宽字符。以 GB2312 编码为例:
#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;
}以上就是c++++中怎么输入汉字的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号