2016-03-19 13 views
1

Altı tane imzasız kısa hizada yazdırmaya çalışıyorum, ör. 0xFFFF. Sorun şu ki, X değil X bir küçük harf istiyorum. Bunu nasıl yapacağımı bilmiyorum.printf kısa boylu altıgen büyük harf ile C

fprintf(c,"%#06X,\n\t", pixel[i])); 
+0

Ve C++ etiketi sadece ... – Olaf

+0

'% X',' unsigned short' için yanlış tip belirtecidir ve piksel [i] de yanlış tiptir. – Olaf

+2

piksel [i] işaretsiz kısa dizidir. –

cevap

5

Değişim% x% x belirteci ve küçük harf almalısınız: 0xffff olarak

fprintf(c, "%#06x\n", pixel[i]); 

Çıkışlar numarası. piksel imzasız şort bir dizidir ve verileri eşleştirmek için bir format isterseniz, bunu yapabilirsiniz:

fprintf(c, "%#06hx\n", pixel[i]); 

Eğer gerçekten 0xFFFF isterseniz, o zaman o Önemsiz:

fprintf(c, "0x%04hX\n", pixel[i]); 
+0

OP'den şüpheleniyorum, sadece x'in lowr vakasını sorgunda belirtiyor. Bağımsız değişken gerektiren uygulama tanımlı davranışı önlemek için argümanın "imzasız" olması gerektiğini unutmayın. – Olaf

+1

Burada (imzasız) yayınlanmış veya içermeyen uygulama tanımlı davranış kaygıları yoktur. “0x% 04hX” 'OP'nin aradığı şeydir. – chux

İlgili konular