मुझे पता है कि यह उत्पादक नहीं लगता है, लेकिन मैं printf
कॉल के लिए सभी स्वरूपण कोड याद रखने का एक तरीका ढूंढ रहा हूं। %s
, %p
, %f
सभी स्पष्ट हैं, लेकिन मुझे समझ में नहीं आता कि %d
कहां से आता है। %i
पहले से ही किसी और द्वारा लिया गया है?इंटीजर के लिए% d क्यों खड़ा है?
उत्तर
यह "decimal" (आधार 10), "पूर्णांक" नहीं है। (बेस 8) में प्रिंट करने के लिए आप (बेस 16), और %o
में प्रिंट करने के लिए %x
का उपयोग कर सकते हैं। इन अड्डों में से किसी एक में एक पूर्णांक हो सकता है।
printf()
में, आप %d
के पर्याय के रूप %i
उपयोग कर सकते हैं, यदि आप के बजाय "पूर्णांक" इंगित करने के लिए पसंद करते हैं "दशमलव," लेकिन %d
आम तौर पर पसंद किया जाता है के रूप में यह और अधिक विशिष्ट है।
इनपुट पर, scanf()
का उपयोग करके, आप %i
और %d
दोनों का उपयोग भी कर सकते हैं। %i
का मतलब किसी भी आधार (ऑक्टल, हेक्साडेसिमल, या दशमलव में एक पूर्णांक के रूप में पार्स करें, जैसा कि 0
या 0x
उपसर्ग द्वारा इंगित किया गया है), जबकि %d
का अर्थ यह दशमलव पूर्णांक के रूप में पार्स करना है।
यहाँ कार्रवाई में उन सभी का एक उदाहरण है:
#include <stdio.h>
int main() {
int out = 10;
int in[4];
printf("%d %i %x %o\n", out, out, out, out);
sscanf("010 010 010 010", "%d %i %x %o", &in[0], &in[1], &in[2], &in[3]);
printf("%d %d %d %d\n", in[0], in[1], in[2], in[3]);
sscanf("0x10 10 010", "%i %i %i", &in[0], &in[1], &in[2]);
printf("%d %d %d\n", in[0], in[1], in[2]);
return 0;
}
तो, आप केवल %i
का उपयोग करना चाहिए अगर आप उपसर्ग पर निर्भर करने के लिए इनपुट आधार चाहते हैं; यदि इनपुट बेस को ठीक किया जाना चाहिए, तो आपको %d
, %x
, या %o
का उपयोग करना चाहिए। विशेष रूप से, तथ्य यह है कि एक अग्रणी 0
आपको ऑक्टल मोड में रखता है, आपको पकड़ सकता है।
यह बताने के लिए धन्यवाद कि क्यों मैं% करता हूं। – clementine
http://en.wikipedia.org/wiki/Printf_format_string कि यह दशमलव के लिए है के रूप में मैं एक हस्ताक्षरित दशमलव संख्या के रूप में
d,i
पूर्णांक अनुमान लगाया था कहने के लिए लगता है। '% d' और '% i' आउटपुट के समानार्थी हैं, लेकिन इनपुट के लिए scanf() के साथ उपयोग किए जाने पर भिन्न होते हैं (% i का उपयोग करके हेक्सडेसिमल के रूप में एक संख्या की व्याख्या करेगा यदि यह 0x से पहले है, और ऑक्टल से पहले 0.)
- 1. वो किसके लिए खड़ा है?
- 2. फ़ुटपुट (_ ("")) अंडरस्कोर के लिए क्या खड़ा है?
- 3. 'एचएल` के लिए क्या खड़ा है?
- 4. भोजन के लिए क्या खड़ा है?
- 5. *** NO_CI *** के लिए क्या खड़ा है?
- 6. स्ट्रैब्रिक के लिए क्या खड़ा है?
- 7. एमआर संस्करण के लिए क्या खड़ा है?
- 8. 'कोर' के लिए क्या खड़ा है?
- 9. uint32_t के लिए क्या खड़ा है?
- 10. एससीएम के लिए क्या खड़ा है?
- 11. क्या क्यूए सर्वर के लिए खड़ा है?
- 12. एक्सएपी के लिए क्या खड़ा है?
- 13. बंप संस्करण के लिए क्या खड़ा है?
- 14. स्प्रिंटफ के लिए क्या खड़ा है?
- 15. क्यों ईरेग ("^ \ d {11} $", 18311111111) गलत है?
- 16. कोई एकीकृत इंटीजर प्रकार क्यों नहीं है?
- 17. "nd -d इंस्टॉल" में "-d" क्या है?
- 18. regex में (\ d +)/(\ d +) क्या है?
- 19. पाइथन के डीआईआर() फ़ंक्शन के लिए क्या खड़ा है?
- 20. दिनांक अंतराल प्रारूप में 'पी' के लिए क्या खड़ा है?
- 21. विम जनस <D-F><D-/>
- 22. जावा-डी में डी के लिए क्या खड़ा है?
- 23. "nib" और "xib" के लिए क्या खड़ा है?
- 24. cout - यह किसके लिए खड़ा है?
- 25. एफबी क्या करता है: नेमस्पेस के लिए खड़ा है?
- 26. क्या करता है (int (*) []) var1 के लिए खड़ा है?
- 27. "apachectl" के लिए क्या खड़ा है? यह सिर्फ "अपाचे" क्यों नहीं है?
- 28. std :: iota के iota के लिए क्या खड़ा है?
- 29. Symfony2 में 'Acme' के लिए क्या खड़ा है?
- 30. विंडोज़ में सीबीटी हुक ... "सीबीटी" के लिए क्या खड़ा है?
मेरा सबसे अच्छा अनुमान दशमलव –
है, हालांकि, यह एक प्रकार का विडंबनापूर्ण +1 है, दिलचस्प सवाल है। – Daniel
हालांकि यह वास्तविक प्रोग्रामिंग प्रश्न नहीं है, और मैं उनको बंद कर देता हूं :) –