假设你有“方法”
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/