C ++ ungetwc () - C ++ स्टैंडर्ड लाइब्रेरी

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

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

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

 wint_t ungetwc (wint_t ch, FILE * stream);

Ungetwc () फ़ंक्शन वाइड कैरेक्टर ch को फाइल स्ट्रीम से जुड़े बफ़र पर वापस धकेल देता है जब तक ch WEOF के बराबर न हो। यदि Ch WEOF के बराबर है, तो ऑपरेशन विफल हो जाता है और स्ट्रीम में कोई बदलाव नहीं होता है।

बीच में बिना पढ़े या रिप्रेजेंटिंग ऑपरेशन के एक बार से ज्यादा कॉल करने पर फेल होने का कॉल () फेल हो सकता है।

यदि ungetwc () में कॉल सफल है, तो फ़ाइल स्थिति ध्वज फ़ॉफ़ का अंत साफ़ हो जाता है।

पाठ और बाइनरी स्ट्रीम दोनों के लिए, ungetwc की एक सफल कॉल स्ट्रीम स्थिति संकेतक को अनिर्दिष्ट तरीके से संशोधित करती है। लेकिन यह गारंटी है कि सभी पुश-बैक वर्णों को एक रीड ऑपरेशन के साथ पुनर्प्राप्त करने के बाद, स्ट्रीम स्थिति सूचक को ungetwc () कॉल करने से पहले इसके मूल्य के बराबर है।

ungetwc () पैरामीटर

  • ch: चौड़े चरित्र को पीछे धकेलने के लिए।
  • धारा: फ़ाइल स्ट्रीम जहाँ विस्तृत वर्ण पीछे धकेल दिया जाता है।

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

  • सफलता पर, ungetwc () फ़ंक्शन वर्ण ch देता है।
  • विफलता पर WEOF को धारा को बदले बिना लौटा दिया जाता है।

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

 #include #include #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wint_t c; long value = 0; wchar_t str() = L"u0037u0031u0039u00b6u03ee"; FILE *fp = fopen("file.txt", "r+"); fputws(str,fp); rewind(fp); while(1) ( c = fgetwc(fp); if (iswdigit(c)) value = value*10 + c - L'0'; else break; ) ungetwc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

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

 मान = 719

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