c++ - 将 int 转换为 wchar_t 的正确方法是什么?

标签 c++ windows type-conversion wchar

假设你有“方法”

int Read(...)
{
    unsigned char Byte = 0;
    if(!ReadFile(.., &byte, 1,...))
        return -1;

    return Byte;
}


int ReadBlock(LPWSTR buffer, int cchBuffer ...)
{
    int c = 0;
    int cnt = 0;
    do
    {
        if( (c=Read(...)) != -1 )
            buffer[num++] = c; // Here.
    } while( num < ccBuffer );
    return cnt;
}

将 int 正确转换为 WCHAR 的正确方法是什么?

最佳答案

使用mbstowcs(多字节字符串到宽字符串):

int ReadBlock(LPWSTR buffer, int cchBuffer ...)
{
    int c = 0;
    std::vector<char> narrow;
    while((c=Read(...)) != -1 )
       narrow.push_back(c);
    }
    narrow.push_back(0);
    mbstowcs(buffer, &narrow.front(), cchBuffer);
}

mbstowcs 使用当前区域设置,因此应与您输入的编码相匹配。

关于c++ - 将 int 转换为 wchar_t 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055197/

相关文章:

c - Rand() 转换警告

r - as.raw 和其他 as.* 函数在应用于数组时会删除维度属性

c++ - Project Euler #8 c++ 来自初学者

c++ - 对 map 中的 vector 进行排序

c# - 获取 txt 文件的标准应用程序 (.NET)

windows - 来自图像列表的PNG图像

ios - 将多种数据类型转换为 NSData objective C

c++ - {fmt}等同于cout.rdbuf?

c++ - 在非 Fusion 适应结构上 boost Spirit 语义 Action

windows - 如何判断任务栏是否使用小图标