📅  最后修改于: 2023-12-03 14:59:47.788000             🧑  作者: Mango
wctob()
函数是C++标准库中的函数,在头文件<cwchar>
中声明。该函数用于将宽字符中的第一个字符转换为该字符的多字节表示,返回该多字节字符。
int wctob(wint_t wc);
wc
: 宽字符或WEOF
值。如果wc
为WEOF
,则返回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()
函数,则只会转换第一个宽字符。