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

सी ++ में wcstod () फ़ंक्शन एक विस्तृत स्ट्रिंग की सामग्री को फ्लोटिंग पॉइंट नंबर के रूप में व्याख्या करता है और एक डबल के रूप में इसका मान लौटाता है।

Wcstod () फ़ंक्शन भी किसी स्ट्रिंग के अंतिम वैध चरित्र के बाद पहले वाइड कैरेक्टर को इंगित करने के लिए एक पॉइंटर सेट करता है यदि कोई हो, अन्यथा पॉइंटर को शून्य करने के लिए सेट किया गया है।

इसे हेडर फ़ाइल में परिभाषित किया गया है।

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

 डबल wcstod (const wchar_t * str, wchar_t ** str_end);

Wcstod () फ़ंक्शन वाइड स्ट्रिंग और एक पॉइंटर को वाइड कैरेक्टर के रूप में अपने पैरामीटर के रूप में लेता है, वाइड स्ट्रिंग की सामग्री को फ्लोटिंग पॉइंट नंबर के रूप में व्याख्या करता है और दोहरा मूल्य देता है।

wcstod () पैरामीटर

  • str: एक विस्तृत स्ट्रिंग जिसमें फ्लोटिंग पॉइंट संख्या का प्रतिनिधित्व होता है।
  • str_end: एक पॉइंटर को पॉइंटर से एक विस्तृत वर्ण तक। Str_end का मान फ़ंक्शन द्वारा अगले वैध वर्ण के बाद str में अगले वर्ण पर सेट होता है। यह पैरामीटर अशक्त सूचक भी हो सकता है।

wcstod () वापसी मान

Wcstod () फ़ंक्शन रिटर्न:

  • एक डबल मान (जिसे विस्तृत स्ट्रिंग से परिवर्तित किया गया है)।
  • 0.0 यदि कोई वैध रूपांतरण नहीं किया जा सका।

यदि परिवर्तित मान सीमा से बाहर है, तो एक सीमा त्रुटि होती है और एक सकारात्मक या नकारात्मक HUGE_VAL वापस आ जाता है।

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L"83.201xzu0496u0687"; wchar_t *end; double value; value = wcstod(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 वाइड स्ट्रिंग = 83.201xzҖ 83 डबल मान = 83.201 समाप्ति स्ट्रिंग = xz = .201

उदाहरण 2: wcstod () फ़ंक्शन अनुगामी वर्णों के बिना

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L"83.201"; wchar_t *end; double value; value = wcstod(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; ) 

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 वाइड स्ट्रिंग = 83.201 डबल मान = 83.201 समाप्ति स्ट्रिंग =

Wcstod () फ़ंक्शन के लिए एक मान्य फ़्लोटिंग-पॉइंट मान में एक वैकल्पिक + या - साइन इन निम्नलिखित सेटों में से एक होता है:

  • दशमलव फ़्लोटिंग-पॉइंट मान के लिए :
    • दशमलव अंकों (0-9) का एक समूह, वैकल्पिक रूप से दशमलव बिंदु (।) युक्त। उदाहरण के लिए: 13.170, -5.63, आदि।
    • एक वैकल्पिक प्रतिपादक भाग (ई या ई) जिसके बाद एक वैकल्पिक + या - चिह्न अंक और दशमलव अंकों का गैर-खाली क्रम है। उदाहरण के लिए: 3.46101e + 007, 13.19e-013, आदि।
  • हेक्साडेसिमल फ्लोटिंग-पॉइंट वैल्यू के लिए :
    • 0x या 0X से शुरू होने वाली एक स्ट्रिंग, जिसके बाद हेक्साडेसिमल अंकों का एक गैर-खाली अनुक्रम होता है, वैकल्पिक रूप से दशमलव बिंदु (!) से युक्त होता है। उदाहरण के लिए: 0xfa5, -0xb1f.24, आदि।
    • एक वैकल्पिक प्रतिपादक भाग (p या P) जिसके बाद एक वैकल्पिक + या - चिह्न और हेक्साडेसिमल अंकों का गैर-खाली क्रम है। उदाहरण के लिए: 0x51c.23p5, -0x2a.3p-3, आदि।
  • अनंत :
    • जानकारी या जानकारी (मामले की अनदेखी)। उदाहरण के लिए: -इनफ, इंफीनेटी, आदि।
  • NaN (संख्या नहीं) :
    • NAN या NAN अनुक्रम (मामले की अनदेखी) जहां अनुक्रम वर्णों का एक अनुक्रम होता है जिसमें केवल अल्फ़ान्यूमेरिक वर्ण या अंडरस्कोर (_) होता है। परिणाम एक शांत NaN होता है। उदाहरण के लिए: नान, NaNab1, आदि।

उदाहरण 3: कैसे wcstod () घातांक और हेक्साडेसिमल के साथ काम करता है?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"-136.31e-2Endu03c8"; wchar_t str2() = L"0x11a.2cu05ea"; wchar_t *end; double value; value = wcstod(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstod(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 वाइड स्ट्रिंग = -136.31e-2End value डबल मान = -1.3631 समाप्ति स्ट्रिंग = विस्तृत स्ट्रिंग = 0x11a.2c डबल मूल्य = 282.172 समाप्ति स्ट्रिंग = ת

उदाहरण 4: सूचना और NaN के लिए wcstod मामले

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"-inFinityxu03a3y"; wchar_t str2() = L"NaN11u0429"; wchar_t *end; double value; value = wcstod(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstod(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 वाइड स्ट्रिंग = -inFinityxΣy डबल मान = -ff अंत स्ट्रिंग = x =y वाइड स्ट्रिंग = NaN11 nan डबल मान = नान एंड स्ट्रिंग = 11in

सामान्य तौर पर, wcstod () फ़ंक्शन के लिए एक मान्य फ़्लोटिंग पॉइंट तर्क के निम्नलिखित रूप हैं:

 (व्हाट्सएप) (- | +) (अंक) (.digits) ((ई | ई) (- | + +) अंक)

Wcstod () फ़ंक्शन सभी प्रमुख व्हाट्सएप पात्रों को अनदेखा करता है जब तक कि प्राथमिक गैर-व्हाट्सएप चरित्र नहीं मिलता है।

फिर, इस चरित्र से शुरुआत करते हुए, यह संभव के रूप में कई वर्ण लेता है जो एक मान्य फ़्लोटिंग-पॉइंट प्रतिनिधित्व बनाता है और उन्हें फ़्लोटिंग पॉइंट मान में कनवर्ट करता है। अंतिम वैध चरित्र str_end द्वारा इंगित ऑब्जेक्ट में संग्रहीत होने के बाद स्ट्रिंग से जो कुछ भी बचा है।

उदाहरण 5: प्रमुख व्हाट्सएप के साथ wcstod () फ़ंक्शन

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L" 21.69u04f8aa"; wchar_t *end; double value; value = wcstod(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 वाइड स्ट्रिंग = 21.69Ӹaa डबल मान = 21.69 समाप्ति स्ट्रिंग = .aa

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