2012-05-30 82 views

回答

1

使用L"0x%x", value。使緩衝區只有四個元素可能是一個壞主意(只要value大於0xF)。你應該存儲返回值,並確保該字符串沒有被截斷:

int n = swprintf(buff, sizeof buff, L"0x%x", value); 

if (n >= sizeof buff) { /* truncation! */ } 
+0

這是假設'buff'是一個數組 - 如果它是一個指針,則不能使用'sizeof'。 –

4

你需要在字面的 「0X」,如 「爲0x%03X」。 x格式僅以十六進制打印數字,它不會添加0x裝飾。

+0

http://msdn.microsoft.com/en-us/library/8aky45ct.aspx說,旗''#使用時使用o,x或X格式時,#標記分別爲0,0x或0X前綴的任何非零輸出值。 – Belloc

+2

魔術有「任何非零輸出值」。他具體詢問了一下關於0. –

+0

的值是任何帶有1個十六進制數字的數字。但是,當值爲0時,我沒有得到期望的結果。 – Belloc

相關問題