如何输出存储在char数组中的汉字
时间: 2024-03-16 08:41:46 浏览: 125
C语言中的BYTE和char深入解析
要输出存储在char数组中的汉字,需要使用支持Unicode编码的输出函数。在C++中,可以使用wcout函数来输出Unicode编码的字符。具体实现方法如下:
1. 将存储汉字的char数组转换为wchar_t数组,可以使用MultiByteToWideChar函数进行转换,示例代码如下:
```cpp
char chineseChar[] = "你好世界";
int len = MultiByteToWideChar(CP_UTF8, 0, chineseChar, -1, NULL, 0);
wchar_t* chineseWChar = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, chineseChar, -1, chineseWChar, len);
```
2. 使用wcout输出转换后的wchar_t数组,示例代码如下:
```cpp
wcout << chineseWChar << endl;
```
输出结果为:你好世界
注意:需要在程序开头加上locale设置,才能正确输出Unicode字符,示例代码如下:
```cpp
#include <iostream>
#include <locale>
using namespace std;
int main() {
setlocale(LC_ALL, "chs");
char chineseChar[] = "你好世界";
int len = MultiByteToWideChar(CP_UTF8, 0, chineseChar, -1, NULL, 0);
wchar_t* chineseWChar = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, chineseChar, -1, chineseWChar, len);
wcout << chineseWChar << endl;
return 0;
}
```
阅读全文