で試しましswprintf(buff, 4, L"%#03x", value)
たが、の場合は代わりvalue = 0
に取得します。000
0x0
2 に答える
4
「0x%03x」のように、リテラルには「0x」が必要です。このx
フォーマットは、数字を16進数で出力するだけで、0x装飾は追加されません。
于 2012-05-30T21:19:01.680 に答える
1
を使用しL"0x%x", value
ます。バッファに4つの要素のみを含めることは、おそらく悪い考えvalue
です(より大きいとすぐに0xF
)。戻り値を保存し、文字列が切り捨てられていないことを確認する必要があります。
int n = swprintf(buff, sizeof buff, L"0x%x", value);
if (n >= sizeof buff) { /* truncation! */ }
于 2012-05-30T21:21:58.367 に答える