C ++ wcstod () - C ++ standarta bibliotēka

Funkcija wcstod () C ++ interpretē plašas virknes saturu kā peldošā komata skaitli un atgriež tās vērtību kā dubultu.

Funkcija wcstod () arī iestata rādītāju, kas norāda uz pirmo plato rakstzīmi pēc pēdējās derīgās rakstzīmes, ja tādas ir, pretējā gadījumā rādītājs tiek iestatīts uz nulli.

Tas ir definēts galvenes failā.

wcstod () prototips

 dubultā wcstod (const wchar_t * str, wchar_t ** str_end);

Funkcija wcstod () kā parametrs ņem plašu virkni un rādītāju uz plašu rakstzīmi, plašās virknes saturu interpretē kā peldošā komata skaitli un atgriež dubultu vērtību.

wcstod () parametri

  • str: plaša virkne, kurā attēlots peldošā komata skaitlis.
  • str_end: Rādītājs uz plaša rakstura rādītāju. Str_end vērtību funkcija iestata nākamajai rakstzīmei str pēc pēdējās derīgās rakstzīmes. Šis parametrs var būt arī nulles rādītājs.

wcstod () Atgriežamā vērtība

Funkcija wcstod () atgriež:

  • dubultvērtība (kas tiek konvertēta no platās virknes).
  • 0.0, ja nevarēja veikt derīgu konversiju.

Ja konvertētā vērtība ir ārpus diapazona, rodas diapazona kļūda un tiek atgriezta pozitīva vai negatīva HUGE_VAL .

1. piemērs: Kā darbojas wcstod () funkcija?

 #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; )

Palaidot programmu, izeja būs:

 Plaša virkne = 83.201xzҖ ڇ Dubultvērtība = 83.201 End String = xzҖ ڇ

2. piemērs: funkcija wcstod () bez rakstzīmēm

 #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; ) 

Palaidot programmu, izeja būs:

 Plaša virkne = 83,20 Double vērtība = 83.201 Beigu virkne =

Derīga funkcijas wcstod () peldošā komata vērtība sastāv no izvēles zīmes + vai -, kam seko viena no šīm kopām:

  • Decimāldaļas peldošā komata vērtībai :
    • Decimālzīmju grupa (0–9), pēc izvēles saturot decimālzīmi (.). Piemēram: 13.170, -5.63 utt.
    • Neobligāta eksponenta daļa (e vai E), kam seko papildu + vai - zīme un tukša decimālzīmju secība. Piemēram: 3.46101e + 007, 13.19e-013 utt.
  • Heksadecimālai peldošā komata vērtībai :
    • Virkne, kas sākas ar 0x vai 0X, kam seko tukša heksadecimālo ciparu secība, pēc izvēles saturot decimāldaļu (.). Piemēram: 0xfa5, -0xb1f.24 utt.
    • Neobligāta eksponenta daļa (p vai P), kam seko papildu + vai - zīme un tukša heksadecimālo ciparu secība. Piemēram: 0x51c.23p5, -0x2a.3p-3 utt.
  • Bezgalība :
    • INF vai INFINITY (ignorējot gadījumu). Piemēram: -Inf, InfiNiTy utt.
  • NaN (nav skaitlis) :
    • NAN vai NAN secība (ignorējot reģistru), kur secība ir rakstzīmju secība, kas sastāv tikai no burtciparu rakstzīmēm vai pasvītrojuma (_). Rezultāts ir kluss NaN. Piemēram: Nan, NaNab1 utt.

3. piemērs: Kā wcstod () darbojas ar eksponentiem un heksadecimāliem?

 #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; )

Palaidot programmu, izeja būs:

 Platā virkne = -136,31e-2Endψ Divkāršā vērtība = -1,3631 Beigu virkne = Endψ Plašā virkne = 0x11a.2c ת Dubultā vērtība = 282,172 End virkne = ת

4. piemērs: wcstod gadījumi INFINITY un NaN

 #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; )

Palaidot programmu, izeja būs:

 Plaša virkne = -inFinityxΣy Divkārša vērtība = -inf beigu virkne = xΣy Plaša virkne = NaN11Щ Divkārša vērtība = nan End virkne = 11Щ

Parasti derīgam funkcijas wcstod () peldošā komata argumentam ir šāda forma:

 (atstarpe) (- | +) (cipari) (. cipari) ((e | E) (- | +) cipari)

Funkcija wcstod () ignorē visas galvenās atstarpes rakstzīmes, līdz tiek atrasts primārais raksturs, kas nav atstarpes.

Tad, sākot ar šo rakstzīmi, ir nepieciešams pēc iespējas vairāk rakstzīmju, kas veido derīgu peldošā komata attēlojumu un pārvērš tos par peldošā komata vērtību. Tas, kas paliek pāri no virknes pēc pēdējās derīgās rakstzīmes, tiek saglabāts str_end norādītajā objektā.

5. piemērs: funkcija wcstod () ar vadošo atstarpi

 #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; )

Palaidot programmu, izeja būs:

 Plaša virkne = 21,69Ӹaa Divkārša vērtība = 21,69 Beigu virkne = Ӹaa

Interesanti raksti...