📜  C++ wctob()

📅  最后修改于: 2020-09-25 10:12:26             🧑  作者: Mango

如果C++中的wctob() 函数的多字节字符等效项是一个字节,则它将宽字符转换为单字节字符 (char类型)。

wctob() 函数在头文件中定义。

wctob()原型

int wctob( wint_t c );

wctob() 函数将宽字符 c作为其参数,并在可能的情况下返回等效的窄单字节字符 。

wctob()参数

wctob()返回值

如果c在初始移位状态下表示长度为1的多字节字符 ,则wctob() 函数将返回c的单字节表示形式。否则,返回EOF。

示例:wctob() 函数如何工作?

#include 
#include 
#include 
#include 
using namespace std;

void test_wctob(wchar_t c)
{
    int ch = wctob(c);
    if (ch != EOF)
        wcout << c << L" can be narrowed" << endl;
    else
        wcout << c << L" can't be narrowed" << endl;
}

int main()
{
    setlocale(LC_ALL, "en_US.utf8");

    wchar_t wc1 = L'm';
    wchar_t wc2 = L'\u00c6';
    
    test_wctob(wc1);
    test_wctob(wc2);
    
    return 0;
}

运行该程序时,输出为:

m can be narrowed
Æ can't be narrowed