将INT8 ... INT64,UINT8 ... UINT64,float,double转换为WCHAR *

时间:2016-11-30 17:52:54

标签: c++ converter floating-accuracy wchar uint

我正在使用C / C ++,是否有任何Windows函数或任何非常快速的方法从Title中的任何类型转换为const WCHAR *?

所以我有一个大案例,我检查我的数据是什么类型,进入某个分支,我需要将该数据转换为WCHAR *。

所以,如果我有的话 21,我希望它是L“21”。 32.322 => L “32.322” 等

我可以手动完成但是如果有更快的方法我会更喜欢它!这些转换似乎在较低级别上发生了很多。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用的是C ++ 11或C ++ 14,则可以使用std::to_wstring。否则以这种方式使用'swprintf':

创建一个具有适当数组大小的宽字符串缓冲区:

wchar_t wstr[32];

要转换为整数,请使用'swprintf'和'%d'格式:

swprintf(wstr, L"%d", 21);

现在'wstr'包含你的“21”

要转换为浮点数,请使用'%。* f'格式的'swprintf'。我们将在小数点后使用最多3位数(默认情况下,这是6)。所以它需要更少的'wchar_t'来存储:

swprintf(wstr, L"%.*f", 3, 32.322f);

现在'wstr'包含你的“32.322”

有关'swprintf'

的更多信息,请查看以下MSDN页面

sprintf, swprintf