2010-08-20 10 views
7

मैं अग्रणी शून्यों के साथ एक 8 अंकों की लंबी स्ट्रिंग के लिए एक हस्ताक्षरित int प्रारूपित करना चाहता हूं।8 अंकों वाले हेक्साडेसिमल संख्या में हस्ताक्षर किए गए int को कैसे प्रारूपित करें?

unsigned int number = 260291273; 
    char output[9]; 
    sprintf(output, "%x", number); 
    printf("%s\n", output); // or write it into a file with fputs 

प्रिंट "f83bac9", लेकिन मैं "0f83bac9" हैं:

यह वही है मैं अब तक है। मैं स्वरूपण कैसे प्राप्त कर सकता हूं?

+1

मैंने डाउनवोट नहीं किया, लेकिन मैं कल्पना कर सकता था कि यह एक प्रश्न के लिए है जिसे मैन्युअल पृष्ठ पर देखकर उत्तर दिया जा सकता है। –

उत्तर

9

अपनी प्रारूप स्ट्रिंग के रूप में "% 08x" का प्रयोग करें।

5

आप 0 और % और प्रारूप प्रकार के बीच जो अंक चाहते हैं, उसे निर्दिष्ट करके शून्य-पैडिंग का उपयोग कर सकते हैं।

उदाहरण के लिए, के साथ (कम से कम) 8 अंक, आप %08x प्रयोग करेंगे हेक्साडेसिमल संख्याओं के लिए:

printf("%08x", number); 

आउटपुट (यदि number 500 है):

000001f4

संबंधित मुद्दे