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

C ++ में swscanf () फ़ंक्शन वाइड स्ट्रिंग बफर से विस्तृत वर्ण पढ़ता है।

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

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

 int swscanf (const wchar_t * बफर, const wchar_t * प्रारूप,…);

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

swscanf () पैरामीटर

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

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

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

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

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

 #include #include int main() ( wchar_t buffer(100) = L"Theta u03b8"; wchar_t symbol, desc(10); setlocale(LC_ALL, "en_US.UTF-8"); swscanf(buffer, L"%ls %lc", desc, &symbol); wprintf(L"%lc is %ls", symbol, desc); return 0; )

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

 ta थीटा है

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