c - % * का प्रारूप निर्दिष्ट करने का क्या अर्थ है?

Translate

कुछ कोड में जिन्हें मुझे बनाए रखना है, मैंने एक प्रारूप निर्दिष्ट किया है%*s। क्या कोई मुझे बता सकता है कि यह क्या है और इसका उपयोग क्यों किया जाता है?

इसके उपयोग का एक उदाहरण इस प्रकार है:

fprintf(outFile, "\n%*s", indent, "");
This question and all comments follow the "Attribution Required."

सभी उत्तर

Translate

यह निर्दिष्ट करने के लिए उपयोग किया जाता है, एक गतिशील तरीके से, क्षेत्र की चौड़ाई क्या है:

  • चौड़ाई को प्रारूप स्ट्रिंग में निर्दिष्ट नहीं किया गया है, लेकिन एक अतिरिक्त पूर्णांक मान तर्क के रूप में तर्क के पूर्व स्वरूपित किया जाना है।

इसलिए "इंडेंट" यह निर्दिष्ट करता है कि पैरामीटर सूची में इसका अनुसरण करने वाले स्ट्रिंग के लिए कितना स्थान आवंटित करना है।

इसलिए,

printf("%*s", 5, "");

के समान है

printf("%5s", "");

यह आपकी फ़ाइल में कुछ रिक्त स्थान डालने का एक अच्छा तरीका है, लूप से बचना।

स्रोत
Translate

बफर पर "% * s" का प्रयोग न करें, जो यह सोचकर कि इसे समाप्त नहीं किया गया है (पैक किया गया है) कि यह केवल "लंबाई" क्षेत्र को प्रिंट करेगा।

स्रोत
Translate

प्रारूप निर्दिष्ट%% 4 क्षेत्र की चौड़ाई में एक स्ट्रिंग को आउटपुट करता है - यानी, प्रिंटफ कम से कम 4 वर्ण पदों के साथ मूल्य प्रदर्शित करता है।

यदि आउटपुट होने का मूल्य हैless4 से अधिक वर्ण की स्थिति व्यापक है, मान हैright justifiedडिफ़ॉल्ट रूप से फ़ील्ड में।

मान है तोgreater4 से अधिक वर्ण व्यापक, क्षेत्र चौड़ाईexpandsवर्णों की उचित संख्या को समायोजित करने के लिए।

मान को सही ठहराने के लिए, फ़ील्ड की चौड़ाई निर्दिष्ट करने के लिए एक नकारात्मक पूर्णांक का उपयोग करें।

संदर्भ:जावा ™ कैसे प्रोग्राम (प्रारंभिक ऑब्जेक्ट्स), दसवीं संस्करण

स्रोत
Translate

* आउटपुट को पैड करने के लिए fprintf का कारण बनता है जब तक कि यह n वर्ण चौड़ा न हो, जहाँ n एक पूर्णांक मान होता है जिसे फ़ंक्शन तर्क में संग्रहीत किया जाता है जो कि पूर्ववर्ती संशोधित प्रकार द्वारा प्रस्तुत किया जाता है।

printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.
स्रोत
Translate

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

चौड़ाई को प्रारूप स्ट्रिंग में निर्दिष्ट नहीं किया गया है, लेकिन एक अतिरिक्त पूर्णांक मान तर्क के रूप में तर्क के पूर्व स्वरूपित किया जाना है।

जैसे:printf("%*s", 4, myValue);के बराबर हैprintf("%4s", myValue);.

स्रोत
Leave a Reply
You must be logged in to post a answer.
लेखक के बारे में