C ++ wcstod () - C ++ standardraamatukogu

Funktsioon wcstod () tõlgendab C ++ keeles laia stringi sisu ujukomaarvuna ja tagastab selle väärtuse topeltena.

Funktsioon wcstod () paneb ka kursori osutama esimesele laiale märgile pärast laia stringi viimast kehtivat tähemärki, kui neid on, vastasel juhul on kursor null.

See on määratletud päisefailis.

wcstod () prototüüp

 topelt wcstod (const wchar_t * str, wchar_t ** str_end);

Funktsioon wcstod () võtab parameetriks laia stringi ja kursori laia tähemärgini, tõlgendab laia stringi sisu ujukomaarvuna ja tagastab topeltväärtuse.

wcstod () parameetrid

  • str: lai string, millel on ujukoma number.
  • str_end: Kursor laia tähemärgi suunas. Funktsiooni str_end väärtuse määrab funktsioon järgmisele märgile stringis pärast viimast kehtivat tähemärki. See parameeter võib olla ka nullkursor.

wcstod () Tagastusväärtus

Funktsioon wcstod () tagastab:

  • topeltväärtus (mis teisendatakse laiast stringist).
  • 0,0, kui kehtivat teisendamist ei õnnestunud teha.

Kui teisendatud väärtus jääb vahemikust välja, tekib vahemikuviga ja tagastatakse positiivne või negatiivne HUGE_VAL .

Näide 1: Kuidas funktsioon wcstod () töötab?

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

Programmi käivitamisel on väljund järgmine:

 Lai string = 83.201xzҖ ڇ Topeltväärtus = 83.201 End String = xzҖ ڇ

Näide 2: funktsioon wcstod () ilma tähemärkideta

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

Programmi käivitamisel on väljund järgmine:

 Lai string = 83,20 Topeltväärtus = 83,20 Lõpp string =

Funktsiooni wcstod () kehtiv ujukoma väärtus koosneb valikulisest märgist + või -, millele järgneb üks järgmistest komplektidest:

  • Ujukoma kümnendkoha väärtuse korral :
    • Kümnendkohtade rühm (0–9), mis sisaldab valikuliselt komakohta (.). Näiteks: 13.170, -5.63 jne.
    • Valikuline eksponentosa (e või E), millele järgneb valikuline märk + või - ja kümnendkohtade tühi jada. Näiteks: 3.46101e + 007, 13.19e-013 jne.
  • Kuueteistkümnendkohalise ujukoma väärtus :
    • String, mis algab 0x või 0X, millele järgneb kuueteistkümnendkohaliste arvude tühi jada, mis sisaldab valikuliselt kümnendkohta (.). Näiteks: 0xfa5, -0xb1f.24 jne.
    • Valikuline eksponentosa (p või P), millele järgneb valikuline märk + või - ja kuueteistkümnendkohaliste numbrite tühi jada. Näiteks: 0x51c.23p5, -0x2a.3p-3 jne.
  • Lõpmatus :
    • INF või INFINITY (ignoreerides juhtumit). Näiteks: -Inf, InfiNiTy jne.
  • NaN (mitte arv) :
    • NAN- või NAN-järjestus (ignoreerides juhtumit), kus järjestus on tähtede jada, mis koosneb ainult tähtnumbrilistest tähtedest või alakriipsust (_). Tulemuseks on vaikne NaN. Näiteks: Nan, NaNab1 jne.

Näide 3: Kuidas wcstod () töötab eksponentide ja kuueteistkümnendkohtadega?

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

Programmi käivitamisel on väljund järgmine:

 Lai string = -136,31e-2Endψ Topeltväärtus = -1,3631 Lõpus string = Endψ Lai string = 0x11a.2c ת Topeltväärtus = 282,172 End String = ת

Näide 4: wcstodi juhtumid INFINITY ja NaN jaoks

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

Programmi käivitamisel on väljund järgmine:

 Lai string = -inFinityxΣy Topeltväärtus = -inf End String = xΣy Lai string = NaN11Щ Topeltväärtus = nan End String = 11Щ

Üldiselt on funktsiooni wcstod () kehtiv ujukomaargument järgmine vorm:

 (tühik) (- | +) (numbrit) (. numbrit) ((e | E) (- | +) numbrit)

Funktsioon wcstod () ignoreerib kõiki juhtivaid tühimärke, kuni leitakse esmane tühimärk.

Seejärel, alates sellest märgist, võtab see võimalikult palju märke, mis moodustavad kehtiva ujukoma kujutise ja teisendavad need ujukoma väärtuseks. Mis jääb stringist järele pärast seda, kui viimane kehtiv märk on salvestatud str_end-i osutatud objektile.

Näide 5: funktsioon wcstod () juhtiva tühimikuga

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

Programmi käivitamisel on väljund järgmine:

 Lai string = 21.69Ӹaa Topeltväärtus = 21.69 End String = Ӹaa

Huvitavad Artiklid...