सी ++ में स्प्रिंटफ () फ़ंक्शन का उपयोग वर्ण स्ट्रिंग बफर के लिए एक स्वरूपित स्ट्रिंग लिखने के लिए किया जाता है।
स्प्रिंटफ () प्रोटोटाइप
int स्प्रिंटफ (चार * बफर, कास्ट चार * प्रारूप,…);
sprintf()
समारोह स्ट्रिंग प्रारूप बफ़र होना द्वारा की ओर इशारा किया लिखता है। स्ट्रिंग प्रारूप में% के साथ शुरू होने वाले प्रारूप विनिर्देशक हो सकते हैं जो sprintf()
अतिरिक्त तर्कों के रूप में फ़ंक्शन में पारित होने वाले चर के मूल्यों द्वारा प्रतिस्थापित किए जाते हैं ।
इसे हेडर फ़ाइल में परिभाषित किया गया है।
स्प्रिंटफ () पैरामीटर
- बफर: परिणाम लिखने के लिए स्ट्रिंग बफर को इंगित करें।
- प्रारूप: एक शून्य समाप्त स्ट्रिंग को इंगित करता है जो फ़ाइल स्ट्रीम में लिखा जाता है। इसमें% के साथ शुरू होने वाले वैकल्पिक प्रारूप विनिर्देशक के साथ वर्ण शामिल हैं।
प्रारूप निर्दिष्टकर्ता संबंधित स्ट्रिंग के मानों द्वारा प्रतिस्थापित किए जाते हैं जो प्रारूप स्ट्रिंग का अनुसरण करते हैं।
प्रारूप विनिर्देशक के निम्नलिखित भाग होते हैं:
- एक अग्रणी% चिन्ह
- झंडे: वैकल्पिक एक या अधिक झंडे जो रूपांतरण व्यवहार को संशोधित करते हैं।
- - - वाम क्षेत्र के भीतर परिणाम को सही ठहराते हैं। डिफ़ॉल्ट रूप से यह सही है।
- +: परिणाम का संकेत मूल्य की शुरुआत से जुड़ा है, यहां तक कि सकारात्मक परिणामों के लिए भी।
- अंतरिक्ष: यदि कोई संकेत नहीं है, तो परिणाम की शुरुआत के लिए एक स्थान जुड़ा हुआ है।
- #: रूपांतरण का एक वैकल्पिक रूप प्रदर्शन किया जाता है।
- 0: इसका उपयोग पूर्णांक और फ्लोटिंग पॉइंट संख्या के लिए किया जाता है। अंतरिक्ष के बजाय संख्याओं को पैड करने के लिए अग्रणी शून्य का उपयोग किया जाता है।
- चौड़ाई: न्यूनतम चौड़ाई क्षेत्र को निर्दिष्ट करने के लिए उपयोग किया गया एक वैकल्पिक * या पूर्णांक मान।
- परिशुद्धता: एक वैकल्पिक क्षेत्र जिसमें एक है। परिशुद्धता को निर्दिष्ट करने के लिए * या पूर्णांक या कुछ भी नहीं है।
- लंबाई: एक वैकल्पिक लंबाई संशोधक जो तर्क के आकार को निर्दिष्ट करता है।
- विनिर्देशक: रूपांतरण प्रारूप निर्दिष्ट करता है। उपलब्ध प्रारूप विनिर्देशक इस प्रकार हैं:
प्रारूप विनिर्देशक विवरण % प्रिंट% सी एकल चरित्र लिखता है एस एक चरित्र स्ट्रिंग लिखता है d या i दशमलव प्रतिनिधित्व के लिए एक हस्ताक्षरित पूर्णांक बदलता है ओ एक अहस्ताक्षरित पूर्णांक को अष्टक प्रतिनिधित्व में परिवर्तित करता है एक्स या एक्स एक अहस्ताक्षरित पूर्णांक को हेक्साडेसिमल प्रतिनिधित्व में परिवर्तित करता है यू एक अहस्ताक्षरित पूर्णांक को दशमलव प्रतिनिधित्व में परिवर्तित करता है च या च दशमलव प्रतिनिधित्व के लिए फ़्लोटिंग-पॉइंट संख्या को कनवर्ट करता है ई या ई दशमलव प्रतिपादक अंकन के लिए फ्लोटिंग-पॉइंट संख्या को परिवर्तित करता है ए या ए हेक्साडेसिमल एक्सपोनेंट के लिए फ्लोटिंग-पॉइंट नंबर को परिवर्तित करता है जी या जी फ़्लोटिंग-पॉइंट नंबर को या तो दशमलव या दशमलव घातांक संकेतन में परिवर्तित करता है एन इस कॉल द्वारा फ़ंक्शन में अब तक लिखे गए वर्णों की संख्या लौटाता है। परिणाम तर्क द्वारा इंगित मूल्य को लिखा जाता है पी एक सूचक को परिभाषित करते हुए एक कार्यान्वयन परिभाषित वर्ण अनुक्रम लिखता है। तो प्रारूप विनिर्देशक का सामान्य प्रारूप है:
%(flags)(width)(.precision)(length)specifier
- …: डेटा को निर्दिष्ट करने वाले अन्य अतिरिक्त तर्क मुद्रित किए जाते हैं। वे प्रारूप विनिर्देशक के अनुसार एक क्रम में होते हैं।
स्प्रिंटफ () वापसी मूल्य
- यदि सफल होता है, तो
sprintf()
फ़ंक्शन उन वर्णों की संख्या देता है , जिन्हें समाप्त करने वाले अशक्त वर्ण को छोड़कर पर्याप्त रूप से बड़े बफर के लिए लिखा गया होता है। - असफल होने पर यह एक नकारात्मक मूल्य देता है।
उदाहरण: स्प्रिंटफ () फ़ंक्शन कैसे काम करता है
#include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
नमस्ते, मैं मैक्स हूं और मैं 23 साल का हूं चरित्रों की संख्या = 34 लिखी गई है