1

で試しましswprintf(buff, 4, L"%#03x", value)たが、の場合は代わりvalue = 0に取得します。0000x0

4

2 に答える 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 に答える