📜  cout char32_t c++ (1)

📅  最后修改于: 2023-12-03 15:00:02.611000             🧑  作者: Mango

C++中的char32_t

在C++11标准中,我们可以使用char32_t类型来存储Unicode字符。本文将介绍char32_t类型及其在C++程序中的使用。

char32_t类型

char32_t是一种32位无符号整数类型,在C++11中被引入。它被用来表示Unicode字符,其范围是0到0x10FFFF。char32_t类型在头文件中定义,可以使用uint32_t等价类型别名。

下面是char32_t类型定义的示例:

#include <cstddef>
#include <cstdint>

int main() {
  char32_t c = U'𩸽'; // Unicode code point U+29E3D
  std::uint32_t n = c;
  std::size_t len = sizeof(c);
  return 0;
}

在此示例中,我们定义了一个char32_t类型变量c,并初始化为Unicode字符“𩸽”。同时,我们使用了std::uint32_t类型别名来定义n变量,其值为c的无符号整型表示。我们还使用std::size_t类型来获取c变量所占用的字节数。

需要注意的是,使用单引号括起来的字符字面量在C++中表示的是char类型,而不是char32_t类型。要表示char32_t类型的字符,需要使用U前缀,如上文中所示。

输出char32_t类型

在C++中,我们可以使用流运算符“<<”输出char32_t类型的值。

下面是输出char32_t类型的示例:

#include <iostream>
#include <cstddef>

int main() {
  char32_t c = U'𩸽';
  std::cout << "Unicode character: " << c << std::endl;
  std::cout << "Size of char32_t: " << sizeof(c) << " bytes" << std::endl;
  return 0;
}

在此示例中,我们使用流运算符“<<”输出了char32_t类型变量c的值及其所占字节数。需要注意的是,在输出Unicode字符时,输出设备需要支持Unicode编码,否则可能会出现乱码。

总结

char32_t类型是C++11中引入的一种用于表示Unicode字符的32位无符号整数类型。我们可以使用U前缀来表示char32_t类型的字符,也可以使用流运算符“<<”输出char32_t类型的值。