C ++ में vswprintf () फ़ंक्शन का उपयोग एक विस्तृत स्ट्रिंग बफ़र को स्वरूपित विस्तृत स्ट्रिंग लिखने के लिए किया जाता है।
Vswprintf () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।
vswprintf () प्रोटोटाइप
int vswprintf (wchar_t * बफर, size_t buf_size, const wchar_t * प्रारूप, va_list vlist);
Vswprintf () फ़ंक्शन वाइड स्ट्रिंग बफर को प्रारूप द्वारा इंगित विस्तृत स्ट्रिंग लिखता है। अधिकतम (buf_size-1)
विस्तृत वर्ण बफर के लिए लिखे गए हैं, जिसके बाद एक शून्य विस्तृत वर्ण है।
विस्तृत स्ट्रिंग प्रारूप में% के साथ शुरू होने वाले प्रारूप विनिर्देशक हो सकते हैं, जिन्हें एक सूची सूची के रूप में पारित किए जाने वाले चर के मूल्यों द्वारा प्रतिस्थापित किया जाता है।
vswprintf () पैरामीटर
- बफर: परिणाम लिखने के लिए एक विस्तृत स्ट्रिंग बफर को इंगित करें।
- buf_size: समाप्त करने के लिए विस्तृत वर्णों की अधिकतम संख्या, जिसमें विस्तृत अशक्त वर्ण भी शामिल है।
- प्रारूप: एक संकेतक एक अशक्त समाप्त होने वाली विस्तृत स्ट्रिंग है जो बफर को लिखा जाता है। इसमें% के साथ शुरू होने वाले वैकल्पिक प्रारूप विनिर्देशक के साथ वर्ण शामिल हैं। प्रारूप विनिर्देशक संबंधित चर के मूल्यों द्वारा प्रतिस्थापित किए जाते हैं जो प्रारूप का अनुसरण करते हैं।
प्रारूप विनिर्देशक के निम्नलिखित भाग होते हैं:- एक अग्रणी% चिन्ह
- झंडे: वैकल्पिक एक या अधिक झंडे जो रूपांतरण व्यवहार को संशोधित करते हैं।
- - - वाम क्षेत्र के भीतर परिणाम को सही ठहराते हैं। डिफ़ॉल्ट रूप से यह सही है।
- +: परिणाम का संकेत मूल्य की शुरुआत से जुड़ा है, यहां तक कि सकारात्मक परिणामों के लिए भी।
- अंतरिक्ष: यदि कोई संकेत नहीं है, तो परिणाम की शुरुआत के लिए एक स्थान जुड़ा हुआ है।
- #: रूपांतरण का एक वैकल्पिक रूप प्रदर्शन किया जाता है।
- 0: इसका उपयोग पूर्णांक और फ्लोटिंग पॉइंट संख्या के लिए किया जाता है। अंतरिक्ष के बजाय संख्याओं को पैड करने के लिए अग्रणी शून्य का उपयोग किया जाता है।
- चौड़ाई: न्यूनतम चौड़ाई क्षेत्र को निर्दिष्ट करने के लिए उपयोग किया गया एक वैकल्पिक * या पूर्णांक मान।
- परिशुद्धता: एक वैकल्पिक क्षेत्र जिसमें एक है। परिशुद्धता को निर्दिष्ट करने के लिए * या पूर्णांक या कुछ भी नहीं है।
- लंबाई: एक वैकल्पिक लंबाई संशोधक जो तर्क के आकार को निर्दिष्ट करता है।
- विनिर्देशक: रूपांतरण प्रारूप निर्दिष्ट करता है। उपलब्ध प्रारूप विनिर्देशक इस प्रकार हैं:
प्रारूप विनिर्देशक विवरण % प्रिंट% सी एकल चरित्र लिखता है एस एक चरित्र स्ट्रिंग लिखता है d या i दशमलव प्रतिनिधित्व के लिए एक हस्ताक्षरित पूर्णांक बदलता है ओ एक अहस्ताक्षरित पूर्णांक को अष्टक प्रतिनिधित्व में परिवर्तित करता है एक्स या एक्स एक अहस्ताक्षरित पूर्णांक को हेक्साडेसिमल प्रतिनिधित्व में परिवर्तित करता है यू एक अहस्ताक्षरित पूर्णांक को दशमलव प्रतिनिधित्व में परिवर्तित करता है च या च दशमलव प्रतिनिधित्व के लिए फ़्लोटिंग-पॉइंट संख्या को कनवर्ट करता है ई या ई दशमलव प्रतिपादक अंकन के लिए फ्लोटिंग-पॉइंट संख्या को परिवर्तित करता है ए या ए हेक्साडेसिमल एक्सपोनेंट के लिए फ्लोटिंग-पॉइंट नंबर को परिवर्तित करता है जी या जी फ़्लोटिंग-पॉइंट नंबर को या तो दशमलव या दशमलव घातांक संकेतन में परिवर्तित करता है एन इस कॉल द्वारा फ़ंक्शन में अब तक लिखे गए वर्णों की संख्या लौटाता है। परिणाम तर्क द्वारा इंगित मूल्य को लिखा जाता है पी एक सूचक को परिभाषित करते हुए एक कार्यान्वयन परिभाषित वर्ण अनुक्रम लिखता है।
तो प्रारूप विनिर्देशक का सामान्य प्रारूप है:% (झंडे) (चौड़ाई) (। परिशुद्धता) (लंबाई) निर्दिष्ट करें
- सूची: लिखने के लिए डेटा युक्त तर्कों की एक सूची।
vswprintf () रिटर्न वैल्यू
- यदि सफल है, तो vswprintf () फ़ंक्शन विस्तृत अक्षरों की संख्या देता है, जो कि समाप्ति वाले विस्तृत वर्ण को छोड़कर लिखा जाता है।
- यदि कोई एन्कोडिंग त्रुटि होती है या यदि उत्पन्न होने वाले वर्णों की संख्या buf_size से अधिक या बराबर थी, तो एक नकारात्मक मान लौटाया जाता है।
उदाहरण: vswprintf () फ़ंक्शन कैसे काम करता है?
#include #include #include void write(wchar_t* buffer, size_t buf_size, const wchar_t *fmt,… ) ( va_list args; va_start(args, fmt); vswprintf(buffer, buf_size, fmt, args); va_end(args); ) int main () ( wchar_t str() = L"u0684 u06b1 u06aa u06a3 u0684"; wchar_t buffer(50); setlocale(LC_ALL, "en_US.UTF-8"); write(buffer, 50, L"Arabic Letters: %ls", str); wprintf(L"%ls", buffer); return 0; )
जब आप प्रोग्राम चलाते हैं, तो निम्न उदाहरण के लिए लिखा जाएगा।
अरबी पत्र: ڄ ڱ ڄ ters ڄ