मुझे मिल गया है, जिसमें एक कोड का टुकड़ा नहीं है एकprintf में "%। * S" का क्या अर्थ है?
printf("%.*s\n")
%.*s
क्या मतलब है?
मुझे मिल गया है, जिसमें एक कोड का टुकड़ा नहीं है एकprintf में "%। * S" का क्या अर्थ है?
printf("%.*s\n")
%.*s
क्या मतलब है?
आप चौड़ाई विनिर्देशक/परिशुद्धता printf()
को, बल्कि यह प्रारूप स्ट्रिंग में कोडिंग मुश्किल से यानी
void f(const char *str, int str_len)
{
printf("%.*s\n", str_len, str);
}
यह ध्यान दिया जाना चाहिए कि 'str_len' तर्क में' int' (या संकुचित अभिन्न प्रकार होना चाहिए, जिसे 'int' में प्रचारित किया जाएगा)। यह 'लांग', 'size_t', आदि –
पास करने के लिए एक बग होगा, यह उल्लेखनीय है कि इस कोड का संभावित उद्देश्य, खासकर जब '% s' के साथ उपयोग किया जाता है, मूल स्ट्रिंग की उप-स्ट्रिंग मुद्रित करना है। इस उपयोग के मामले में, 'str' मूल स्ट्रिंग (संभवतः शुरुआत में) के अंदर कहीं भी इंगित करेगा, और' str_len' मुद्रित होने वाली उप-स्ट्रिंग की लंबाई निर्दिष्ट करेगा। –
पारित करने के लिए, तारांकित (*
) का उपयोग कर सकते मैं कोड से ऊपर नहीं लगता कि सही है लेकिन (printf()
इस विवरण के अनुसार) .*
मतलब है
चौड़ाई प्रारूप स्ट्रिंग में निर्दिष्ट नहीं है, लेकिन तर्क है कि प्रारूप तैयार किया जाता करने के लिए पूर्ववर्ती एक अतिरिक्त पूर्णांक मान तर्क के रूप में। '
तो यह एक तर्क के रूप में एक पारगम चौड़ाई के साथ एक स्ट्रिंग है।
मैंने यूआरएल क्रॉस-रेफरेंस जोड़ा है ताकि आप साहित्य चोरी के आरोपों से बच सकें। बेशक, सही उद्धरण कहते हैं, "_width_ नहीं है ..." के बजाय "_precision_ नहीं है ..."। –
जैसा कि @MattMcNabb ने इंगित किया है, उस पृष्ठ के प्रत्येक संदर्भ को यह हाइलाइट करना चाहिए कि "* एक पूर्णांक मान *" बिल्कुल 'int' (या इसका सबसेट) है - न केवल किसी भी अभिन्न मूल्य जैसे अधिक सहज' size_t' या इसके संभावित उपनाम , जैसे 'std :: string :: size_type'। यह और भी भ्रमित है, इस बात को ध्यान में रखते हुए कि संदर्भित पृष्ठ 'size_t' को समर्थित प्रकार विनिर्देशकों में से एक के रूप में वर्णित करता है। –
देखें: http://www.cplusplus.com/reference/clibrary/cstdio/printf/
.*
परिशुद्धता प्रारूप स्ट्रिंग में निर्दिष्ट नहीं है, लेकिन तर्क है कि प्रारूप तैयार किया जाता करने के लिए पूर्ववर्ती एक अतिरिक्त पूर्णांक मान तर्क के रूप में। पात्रों
अतिरिक्त तर्क के बिना की
s
स्ट्रिंग, यह एक मान्य 'printf' कॉल नहीं है। –