सी ++ में स्नप्रिंटफ () क्या है

Si Mem Snaprintapha Kya Hai



C++ आमतौर पर इस्तेमाल की जाने वाली प्रोग्रामिंग लैंग्वेज है जो प्रोग्रामर्स को कई फायदे देती है। इसमें विभिन्न अंतर्निहित कार्य शामिल हैं जिनका उपयोग कई उद्देश्यों के लिए किया जा सकता है। उन कार्यों में से एक समारोह कहा जाता है स्नप्रिंट () जिसे शायद ही लोग जानते हों।

इस लेख में, हम सिंटैक्स, पैरामीटर, वापसी मान और कार्यप्रणाली की व्याख्या करेंगे स्नप्रिंटफ () सी ++ में काम करता है। की पूरी समझ पा सकते हैं स्नप्रिंटफ () इस गाइड में।

सी ++ में स्नप्रिंटफ () क्या है

सी ++ में, स्नप्रिंटफ () एक फ़ंक्शन है जिसका उपयोग बफर को लिखे गए वर्ण और स्ट्रिंग मानों की एक श्रृंखला को प्रारूपित या संग्रहीत करने के लिए किया जाता है। के समान कार्य करता है स्प्रिंटफ () कार्य करता है लेकिन इसमें बफर ओवरफ्लो को दूर करने की क्षमता होती है। हेडर फ़ाइल शामिल है स्नप्रिंट () फ़ंक्शन और यदि आप अपने प्रोग्राम में फ़ंक्शन का उपयोग करना चाहते हैं तो इसे घोषित किया जाना चाहिए। स्नप्रिंटफ () फ़ंक्शन उस अधिकतम सामग्री को निर्दिष्ट करता है जो बफर में हो सकती है।







नीचे दिया गया सिंटैक्स उपयोग करने के लिए है स्नप्रिंटफ () सी ++ में कार्य:



sprintf ( चार * बफर, size_t बफ_साइज, कॉन्स्ट चार * प्रारूप, ... ) ;

एक बार अक्षर लिखे जाने के बाद, एक समाप्त होने वाला अशक्त वर्ण डाला जाता है। यदि MAX_BUFSIZE शून्य है, तो कुछ भी संग्रहीत नहीं होता है और बफ़र शून्य सूचक के रूप में कार्य कर सकता है।



स्नप्रिंटफ के पैरामीटर्स ()

निम्नलिखित में प्रयुक्त पैरामीटर हैं स्नप्रिंटफ () समारोह।





  • बफर : एक स्ट्रिंग बफर के लिए एक सूचक जहां आउटपुट लिखा जाएगा।
  • buf_size : MAX_BUFSIZE-1 वर्णों की अधिकतम संख्या है जिसे कोई बफ़र पर लिख सकता है।
  • प्रारूप : एक फ़ाइल स्ट्रीम में पॉइंटर के रूप में एक नल-टर्मिनेटेड स्ट्रिंग लिखी गई है। यह % से शुरू होने वाले वर्णों और संभावित प्रारूप विनिर्देशकों से बना है। प्रारूप स्ट्रिंग का पालन करने वाले चर के मान प्रारूप विनिर्देशक को प्रतिस्थापित करते हैं।
  • (अतिरिक्त तर्क) : प्रारूप स्ट्रिंग के प्रकार के आधार पर, फ़ंक्शन अतिरिक्त तर्कों की एक सूची की अपेक्षा कर सकता है, सभी में एक मान होता है जिसका उपयोग स्ट्रिंग के प्रारूप में प्रारूप विनिर्देशक को बदलने के लिए किया जाता है (या, MAX_BUFSIZE के लिए, भंडारण स्थान के लिए सूचक) .

कम से कम उतने ही पैरामीटर होने चाहिए जितने कि फॉर्मेट स्पेसिफायर वैल्यू हैं। फ़ंक्शन किसी भी अतिरिक्त तर्क को अनदेखा करता है।

स्नप्रिंटफ() रिटर्न क्या करता है

यदि फ़ंक्शन सफल होता है, तो यह उन वर्णों की संख्या लौटाता है जिन्हें उचित रूप से बड़े बफ़र के लिए लिखा गया माना जाएगा, एक समाप्त होने वाले अशक्त वर्ण को छोड़कर। जब यह विफल हो जाता है, तो यह एक नकारात्मक मान उत्पन्न करता है। आउटपुट को पूरी तरह से लिखा हुआ माना जाएगा यदि और केवल यदि लौटाया गया मान गैर-ऋणात्मक है और MAX_BUFSIZE से छोटा है।



सी ++ में स्नप्रिंटफ () का उपयोग कैसे करें

यहाँ C++ में snprintf() का उपयोग करने का एक उदाहरण दिया गया है:

उदाहरण

# शामिल
#शामिल
का उपयोग करते हुए नाम स्थान कक्षा ;
int यहाँ मुख्य ( )
{
चार शौकीन_आकार [ 60 ] ;
int यहाँ वापसी_मूल्य, MAX_BUFSIZE = 60 ;
चार एसटीआर [ ] = 'लिनक्स' ;
int यहाँ सामग्री = चार पांच ;
प्रतिलाभ की मात्रा = sprintf ( शौकीन_आकार, MAX_BUFSIZE, 'हैलो %s उपयोगकर्ता, आइए बैश के बारे में %d लेख पढ़ें' , एसटी, लेख ) ;
अगर ( प्रतिलाभ की मात्रा > 0 && प्रतिलाभ की मात्रा < MAX_BUFSIZE )
{
अदालत << शौकीन_आकार << endl ;
अदालत << 'लिखे गए वर्णों की संख्या =' << प्रतिलाभ की मात्रा << endl ;
}
अन्य
अदालत << 'बफर को लिखने में त्रुटि' << endl ;
वापस करना 0 ;
}

उपरोक्त कोड में, हम बफर के अधिकतम आकार को 60 पर सेट करते हैं। इसका मतलब है कि कोड 60 से अधिक वर्णों को स्वीकार नहीं करेगा। हमने इसका उपयोग किया है स्नप्रिंटफ () एक स्ट्रिंग को आउटपुट करने के लिए कार्य करें जिसमें 56 अक्षर हैं और इसे आउटपुट टर्मिनल पर प्रदर्शित किया जाएगा। यदि आपके दर्ज किए गए वर्ण 60 से अधिक हैं, तो कार्यक्रम एक त्रुटि के माध्यम से होगा।

निष्कर्ष

हमने C++ के प्रोटोटाइप, पैरामीटर, रिटर्न वैल्यू और कार्यप्रणाली का प्रदर्शन किया है स्नप्रिंटफ () फ़ंक्शन जो एक स्वरूपित स्ट्रिंग को एक वर्ण स्ट्रिंग बफर में लिखता है। हमने पूरी समझ के साथ एक उदाहरण का वर्णन किया स्नप्रिंटफ () इस गाइड में।