我正在尝试使用作为参数的wchar_t*
格式化。int
我用谷歌搜索了很多,但我最终变得更加困惑。因此,请考虑以下代码:
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_t
,wsprintf
和分别是 ,和wprintf
的宽字符等价物char
,我希望上面的内容可以打印,但它会在和之间打印垃圾。达到预期结果的正确方法是什么?我在这里误解了什么?sprintf
printf
[5]
[
]
(我应该在这里澄清可移植性比安全性更重要,所以我想知道一个使用这一系列功能而不是更安全的供应商特定扩展的解决方案。)