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

C ++ में vfwscanf () फ़ंक्शन का उपयोग फ़ाइल स्ट्रीम से विस्तृत वर्ण स्ट्रिंग को पढ़ने के लिए किया जाता है।

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

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

 int vfwscanf (File * stream, const wchar_t * प्रारूप, va_list vlist);

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

vfwscanf () पैरामीटर

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

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

vfwscanf () वापसी मान

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

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

 #include #include #include #include void read( FILE *fp, const wchar_t* format,… ) ( va_list args; va_start (args, format); vfwscanf (fp, format, args); va_end (args); ) int main () ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0915u0916u0917u0918u0919"; wchar_t names(5)(5) = (L"Ka", L"Kha", L"Ga", L"Gha", L"Nga"); FILE *fp = fopen("example.txt","w+"); for (int i=0; i<5; i++) fwprintf(fp, L"%lc %ls ", symbol(i), names(i)); rewind(fp); wchar_t ch, str(5); for (int i=0; i<5; i++) ( read(fp, L"%lc %ls ", &ch, str); wprintf(L"%lc - %ls", ch, str); ) fclose(fp); return 0; )

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

 क - का - खा - गा - गा - घ - N - नगा

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