C ++ vscanf () - C ++ Standard Library

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

Vscanf () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

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

 int vscanf (const char * format, va_list vlist);

Vscanf () फ़ंक्शन स्टैड से डेटा को पढ़ता है और संबंधित स्थानों में मूल्यों को संग्रहीत करता है जैसा कि vlist द्वारा परिभाषित किया गया है।

vscanf () पैरामीटर

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

    तो प्रारूप विनिर्देशक का सामान्य प्रारूप है:
     % (*) (चौड़ाई) (लंबाई) निर्दिष्ट करें
  • vlist: इनपुट प्राप्त करने के लिए तर्कों की एक सूची।

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

  • सफल होने पर, vscanf () फ़ंक्शन सफलतापूर्वक पढ़े गए तर्कों की संख्या लौटाता है।
  • विफलता पर, ईओएफ वापस कर दिया जाता है।

उदाहरण: कैसे काम करता है vscanf ()?

 #include #include void read( const char * format,… ) ( va_list args; va_start (args, format); vscanf (format, args); va_end (args); ) int main () ( float marks; char subj(50); printf("Enter subject's name and marks obtained: "); read(" %s %f", subj,&marks); printf("You scored %.2f in %s", marks, subj); return 0; )

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

 विषय का नाम और प्राप्त अंक दर्ज करें: गणित 12 आपने गणित में 12.00 स्कोर किया

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