で試しましswprintf(buff, 4, L"%#03x", value)たが、の場合は代わりvalue = 0に取得します。0000x0
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 に答える