使用 swprintf() 打印"0x0"的格式字符串应该是什么?

What should be the format string to print "0x0" with swprintf()?

本文关键字:字符串 是什么 格式 0x0 swprintf 打印 使用      更新时间:2023-10-16

我尝试过用swprintf(buff, 4, L"%#03x", value),但是当value = 0时,我得到000而不是0x0

您需要

文字中的"0x",例如"0x%03x"。 x格式只打印十六进制数字,不添加 0x 装饰。

使用 L"0x%x", value .使缓冲区只有四个元素可能是一个坏主意(只要value大于 0xF )。您应该存储返回值并确保字符串未被截断:

int n = swprintf(buff, sizeof buff, L"0x%x", value);
if (n >= sizeof buff) { /* truncation! */ }