C ++ sscanf () - C ++ मानक पुस्तकालय

सी ++ में sscanf () फ़ंक्शन स्ट्रिंग बफर के डेटा को पढ़ने के लिए उपयोग किया जाता है।

sscanf () प्रोटोटाइप

 int sscanf (const char * बफर, const char * format,…);

sscanf()समारोह पढ़ता डेटा संबंधित चर में बफर और दुकानों मूल्यों से डेटा पढ़ता है।

इसे हेडर फ़ाइल में परिभाषित किया गया है।

sscanf () पैरामीटर

  • buffer: से डेटा को पढ़ने के लिए एक अशक्त-वर्ण वर्ण स्ट्रिंग को इंगित करता है।
  • format: एक शून्य-वर्ण वर्ण स्ट्रिंग को इंगित करता है जो इनपुट को पढ़ने के लिए निर्दिष्ट करता है। इसमें% के साथ शुरू होने वाले प्रारूप विनिर्देशक शामिल हैं।

    प्रारूप स्ट्रिंग में निम्नलिखित भाग होते हैं:

    • Non whitespace characters% को छोड़कर, जिनमें से प्रत्येक इनपुट स्ट्रीम से एक समान अक्षर का उपभोग करता है। यह फ़ंक्शन को विफल करने का कारण बन सकता है यदि धारा पर अगला चरित्र बराबर की तुलना नहीं करता है।
    • Whitespace character: सभी लगातार व्हाट्सएप पात्रों को सिंगल व्हाट्सएप चरित्र माना जाता है। इसके अलावा, ' n', ' t' और '' को एक ही माना जाता है।
    • Conversion specification: यह निम्न प्रारूप का अनुसरण करता है:
      • प्रारंभिक% वर्ण जो शुरुआत को निर्दिष्ट करता है
      • एक वैकल्पिक * असाइनमेंट-दबाने वाला चरित्र। यदि यह वर्ण मौजूद है, तो fscanf () किसी भी प्राप्त तर्क के लिए परिणाम नहीं देता है।
      • एक वैकल्पिक सकारात्मक पूर्णांक संख्या जो अधिकतम फ़ील्ड चौड़ाई निर्दिष्ट करती है। यह वर्णों की अधिकतम संख्या को निर्दिष्ट करता है जो fscanf () को वर्तमान रूपांतरण विनिर्देश द्वारा निर्दिष्ट रूपांतरण करते समय उपभोग करने की अनुमति देता है।
      • एक वैकल्पिक लंबाई संशोधक प्राप्त तर्क के आकार को निर्दिष्ट करता है।
      • एक रूपांतरण प्रारूप निर्दिष्ट करता है।
        प्रारूप विनिर्देशक विवरण
        % शाब्दिक% से मेल खाता है
        सी किसी एकल वर्ण या एकाधिक वर्णों से मेल खाता है। यदि चौड़ाई परिभाषित की गई है, तो बिल्कुल चौड़ाई वर्णों से मेल खाती है।
        एस लगातार गैर व्हाट्सएप पात्रों से मेल खाता है। यदि चौड़ाई को परिभाषित किया गया है, तो पूरी तरह से वर्णों से मेल खाता है या पहले व्हाट्सएप मिलने तक।
        (सेट) पात्रों के दिए गए सेट से चरित्र के एक गैर खाली अनुक्रम का मिलान करता है। यदि सेट की शुरुआत में मौजूद है, तो सेट में मौजूद सभी वर्ण मेल नहीं खाते हैं।
        d एक दशमलव पूर्णांक से मेल खाता है।
        मैं एक पूर्णांक से मेल खाता है।
        एक अहस्ताक्षरित अष्टक पूर्णांक से मेल खाता है।
        एक्स या एक्स एक अहस्ताक्षरित हेक्साडेसिमल पूर्णांक से मेल खाता है।
        यू एक अहस्ताक्षरित दशमलव पूर्णांक से मेल खाता है।
        ए या ए, ई या ई, एफ या एफ, जी या जी एक फ्लोटिंग-पॉइंट नंबर से मेल खाता है।
        एन अब तक पढ़े गए पात्रों की संख्या लौटाता है।
        पी एक पॉइंटर को परिभाषित करते हुए एक कार्यान्वयन परिभाषित वर्ण अनुक्रम से मेल खाता है।
    तो प्रारूप विनिर्देशक का सामान्य प्रारूप है: %(*)(width)(length)specifier
  • …: डेटा प्राप्त करने के लिए अन्य अतिरिक्त तर्क। वे प्रारूप विनिर्देशक के अनुसार एक क्रम में होते हैं।

sscanf () रिटर्न वैल्यू

  • यदि सफल होता है, तो sscanf()फ़ंक्शन सफलतापूर्वक असाइन किए गए तर्कों को प्राप्त करने की संख्या लौटाता है।
  • यदि पहले प्राप्त तर्क को असाइन किए जाने से पहले मिलान विफलता होती है, तो शून्य देता है।
  • यदि पहला प्राप्त तर्क असाइन किए जाने से पहले इनपुट विफलता होती है, तो EOF वापस कर दिया जाता है।

उदाहरण: sscanf () फ़ंक्शन कैसे काम करता है

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

जब आप प्रोग्राम चलाते हैं, तो एक संभावित आउटपुट होगा:

 पहला नाम: डेनिस अंतिम नाम: रिची

दिलचस्प लेख...