Size_t
को unsigned
पूर्णांक के रूप में परिभाषित किया गया है, लेकिन इसका आकार इस पर निर्भर करता है कि आप 32 या 64-बिट मशीन पर हैं या नहीं। size_t
प्रिंट करने का सही और पोर्टेबल तरीका क्या है?size_t प्रिंट करने के लिए printf का उपयोग करने का सही तरीका क्या है?
उत्तर
%zu
प्रारूप स्ट्रिंग
size_t val = get_the_value();
printf("%zu",val);
z भाग लंबाई विनिर्देशक जो तर्क लंबाई में size_t किया जाएगा कहते हैं का उपयोग करें।
स्रोत - http://en.wikipedia.org/wiki/Printf#printf_format_placeholders
size_t एक हस्ताक्षरित प्रकार है, इसलिए आपको अभी भी 'यू' प्रारूप प्रकार के साथ-साथ 'z' लंबाई संशोधक के रूप में उपयोग करने की आवश्यकता है। –
इसके अलावा, 'z' संशोधक printf के लिए एक C99 अतिरिक्त है, इसलिए यह कड़ाई से मानक C++ सुविधा नहीं है। –
@ चार्ल्स ने आपके हिस्से को सही किया और मैंने शुरुआत में एक सी टैग जोड़ा। मैं उम्मीद करता हूं कि यह सी ++ की तुलना में अधिक सी सुविधा होगी क्योंकि सी ++ कोउट रूट जा सकता है। – JaredPar
इतने cout <<
एक और संभावित जवाब है, इस पर एक सी ++ टैग है।
सी। सी 0 9 0 के सभी संस्करणों में सही होने के लिए यह आश्चर्यजनक रूप से कठिन है, unsigned long
पर कास्टिंग करना चाहिए, लेकिन यह सी 99 में काम नहीं कर सकता है, और सी 99 समाधान आवश्यक रूप से सी 9 0 में काम नहीं करेंगे। 1 9 5 के परिवर्तनों में विश्वसनीय रूप से सी 0 9 0 और सी 99 के बीच अंतर करने की क्षमता पेश की गई थी (__STDC__
के लिए स्वीकार्य मान निर्दिष्ट करना)। मुझे नहीं लगता कि एक पूरी तरह पोर्टेबल तरीका है जो सी 0 9, सी 99 और सी ++ के लिए काम करता है, हालांकि उनमें से किसी एक के लिए समाधान हैं।
मुझे लगता है कि सी ++ जवाब है:
std::size_t n = 1;
std::cout << n;
के लिए सी-शैली आईओ यह थोड़ा और अधिक जटिल है। सी 99 में उन्होंने size_t
मूल्यों के लिए z
लंबाई संशोधक जोड़ा। हालांकि, इस TR1 करने के लिए पिछले समर्थित नहीं है तो आप की तरह एक विशिष्ट आकार के लिए कास्टिंग के साथ छोड़ दिया जाता है:
std::size_t n = 1;
std::printf("%lu\n", static_cast<unsigned long>(n));
फिर, unsigned long long
वास्तव में सी द्वारा समर्थित नहीं है ++ वैसे तो ऊपर unsigned long
के बाद से ठीक काम करेगा सबसे बड़ा कानूनी अभिन्न प्रकार। TR1 के बाद आप size_t
मानों के लिए सुरक्षित रूप से %zu
का उपयोग कर सकते हैं।
- 1. घड़ी_टी प्रिंट करने के लिए printf का उपयोग करने का सही तरीका क्या है?
- 2. क्या printf() सही ढंग से एक सरणी (फ्लोट्स, कहें) प्रिंट करने का कोई तरीका है?
- 3. TypeForwardedToAttribute का उपयोग करने का सही तरीका क्या है?
- 4. क्या printf() का उपयोग करके मुद्रित करने के लिए स्ट्रिंग के कितने वर्ण निर्दिष्ट करने का कोई तरीका है?
- 5. scala.io.Source का उपयोग करने का सही तरीका क्या है?
- 6. निश्चित आकार के प्रकार के साथ scanf/printf (और परिवार) का उपयोग करने का सही तरीका?
- 7. मार्शल SIZE_T * के लिए सही तरीका?
- 8. क्या यह एकाधिक संग्रह लोड करने के लिए ThenFetch() का उपयोग करने का सही तरीका है?
- 9. size_t uint32 uint64 आदि का उपयोग करने के लिए प्रेरणा
- 10. जावा में "प्रिंट" के बजाय "printf" का उपयोग करने का कोई अच्छा कारण है?
- 11. @ सिंक्रनाइज़ का उपयोग करने का सही तरीका कौन सा है?
- 12. फोन नंबरों का प्रतिनिधित्व करने का सही तरीका क्या है?
- 13. get_or_create का उपयोग करने के लिए सही तरीका?
- 14. क्या httpwebrequest का निपटान करने का कोई सही तरीका है?
- 15. किसी फॉर्म का परीक्षण करने के लिए दायरता को अनुकरण करने का सही तरीका क्या है?
- 16. क्वार्ट्ज.NET का निपटान करने का सही तरीका?
- 17. पायथन प्रिंट टॉगल करने का सबसे अच्छा तरीका क्या है?
- 18. क्या यह जगह पर std :: size_t का उपयोग करने के लिए अच्छा अभ्यास है?
- 19. off_t, nlink_t, size_t और अन्य विशेष प्रकारों को प्रदर्शित करने के लिए printf का उपयोग कैसे करें?
- 20. एंड्रॉइड - AsyncTasks का उपयोग करने का सही तरीका?
- 21. टाइमिट का उपयोग करते समय आयात करने का सही तरीका?
- 22. सुपर (तर्क गुजरने) का उपयोग करने का सही तरीका
- 23. एच 1 का उपयोग करने का सही तरीका?
- 24. जावास्क्रिप्ट टैग को प्रारूपित करने का सही तरीका क्या है?
- 25. एरलांग इंडेंट करने का सही तरीका क्या है?
- 26. बड़े ISTreams को प्रबंधित करने का सही तरीका क्या है?
- 27. रेल में class_attribute प्रारंभ करने का सही तरीका क्या है?
- 28. क्या एमवीवीएम लागू करने का यह सही तरीका है?
- 29. फ्लोट प्राप्त करने के लिए दो इंट मानों को विभाजित करने का सही तरीका क्या है?
- 30. एच 2 बंद करने का सही तरीका क्या है?
[आकार आकार \ _t?] के चर के लिए क्रॉस प्लेटफ़ॉर्म प्रारूप स्ट्रिंग का संभावित डुप्लिकेट (http://stackoverflow.com/questions/174612/cross-platform-format-string-for-variables-of-type-size -टी) –
@black आप दूसरे तरीके को बंद करने का प्रस्ताव भी दे सकते हैं। या तो मेरे लिए ठीक है। –