📜  C++ wctob()(1)

📅  最后修改于: 2023-12-03 14:59:47.788000             🧑  作者: Mango

C++ wctob()

简介

wctob()函数是C++标准库中的函数,在头文件<cwchar>中声明。该函数用于将宽字符中的第一个字符转换为该字符的多字节表示,返回该多字节字符。

语法
int wctob(wint_t wc);
参数
  • wc: 宽字符或WEOF值。
返回值

如果wcWEOF,则返回EOF。否则,返回表示wc的多字节字符的第一个字节。

示例
#include <iostream>
#include <cwchar>

int main() {
    wchar_t ch = L'你';
    int charCode = std::wctob(ch);
    std::cout << charCode << std::endl; // 输出: -26
    return 0;
}

上述代码中,ch变量存储了一个宽字符'你',将其传入wctob()函数中,该函数会返回该字符的多字节表示的第一个字节。因为'你'在GB2312编码中的字节表示为0xC4 0xE3,转换成有符号整数依次为196-29,因此,输出结果为-29

注意事项
  • wctob()函数使用的字符集由setlocale()函数设置,并且只会使用该字符集的第一个字节。如果要使用多字节字符集,请使用wctomb()函数。
  • 如果将宽字符串作为参数传递给wctob()函数,则只会转换第一个宽字符。
参考资料