gpt4 book ai didi

c - 使用 wsprintf 将 int 转换为 wchar_t*

转载 作者:太空狗 更新时间:2023-10-29 15:20:10 27 4
gpt4 key购买 nike

我正在尝试使用 int 作为参数来获取格式化的 wchar_t*。我在谷歌上搜索了很多,但结果却更加困惑。因此,请考虑以下代码:

int main(int argc, char** argv) {

wchar_t buf[16];
wsprintf(buf, L"%d", 5);
wprintf(L"[%ls]\n", buf);

system("pause");
return 0;

};

假设 wchar_twsprintfwprintfchar 的宽字符等价物, sprintfprintf 分别,我希望上面的打印 [5],但是它在 [ 之间打印垃圾]。达到预期结果的正确方法是什么?我在这里误解了什么?

(我应该在这里澄清可移植性比安全性更重要,所以我想知道一个使用这一系列功能而不是更安全的供应商特定扩展的解决方案。)

最佳答案

wsprintf() 是一个特定于 Windows 的函数,它在 Unixes 上不可用。您想要实现的目标可以以更便携的方式完成(我已经尝试过这个稍微修改过的代码片段并且它按预期工作):

#include <wchar.h>
#include <stdio.h>

int main(int argc, char **argv)
{
wchar_t buf[16];
swprintf(buf, sizeof(buf) / sizeof(*buf), L"%d", 5);
wprintf(L"[%ls]\n", buf);

return 0;
}

输出:

[5]

关于c - 使用 wsprintf 将 int 转换为 wchar_t*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com