2009-06-16 15 views
33

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

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

fprintf(outFile, "\n%*s", indent, ""); 

उत्तर

43

It's used to specify, in a dynamic way, what the width of the field is:

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

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

तो,

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

रूप

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

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

+0

स्पष्टीकरण के लिए धन्यवाद। मैं थोड़ा गुस्से में था लेकिन जवाब नहीं मिला। – Aamir

+0

मैं इसे sscanf –

+3

@EthanHeilman के साथ काम करने के लिए नहीं मिल सकता, * का अर्थ है कार्यों के स्कैनफ़ परिवार में पूरी तरह से कुछ अलग है। –

0

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

printf("%*d", 5, 10) //will result in "10" being printed with a width of 5. 
1

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

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

उदाहरण: printf("%*s", 4, myValue);printf("%4s", myValue); के बराबर है।

7

एक बफर पर "% * s" का उपयोग न करें जो पूर्ण समाप्त नहीं हुआ (पैक किया गया) सोच रहा है कि यह केवल "लंबाई" फ़ील्ड प्रिंट करेगा।

+10

इसे प्राप्त करने के लिए "%। * S" का प्रयोग करें! –

0

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

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

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

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

संदर्भ: Java™ How To Program (Early Objects), Tenth Edition

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