C ++ wcstof () - C ++ standardraamatukogu

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

See funktsioon määrab ka kursori osutama esimesele laiale märgile pärast laia stringi viimast kehtivat tähemärki, kui neid on, vastasel juhul seatakse kursor nullile.

See on määratletud päisefailis.

wcstof () prototüüp

 ujuk wcstof (const wchar_t * str, wchar_t ** str_end);

Funktsioon wcstof () võtab parameetriks laia stringi ja kursori laia tähemärgini, tõlgendab laia stringi sisu ujukoma numbrina ja tagastab ujukväärtuse.

wcstof () 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.

wcstof () Tagastusväärtus

Funktsioon wcstof () tagastab:

  • ujukvää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 wcstof () töötab?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L"40.001u220fc12"; wchar_t *end; float value; value = wcstof(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = 40,001∏c12 Ujukväärtus = 40,001 Lõppstring = ∏c12

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

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

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

 Lai string = 791.513 Ujukväärtus = 791.513 Lõpp string =

Funktsiooni wcstof () 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 wcstof () 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"39.119e+2xxu0a93"; wchar_t str2() = L"0Xf1.23cu00d8a1"; wchar_t *end; float value; value = wcstof(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstof(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = 39.119e + 2xx ઓ Ujukväärtus = 3911.9 Lõppstring = xx ઓ Lai string = 0Xf1.23cØa1 Ujukväärtus = 241.14 Lõpp string = Øa1

Näide 4: INFINITY ja NaN juhtumid wcstof

 #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; float value; value = wcstof(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstof(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = -inFinityxΣy Ujukväärtus = -inf Lõppstring = xΣy Lai string = NaN11Щ Ujuki väärtus = nan Lõpp string = 11Щ

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

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

Funktsioon wcstof () 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 wcstof () 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; float value; value = wcstof(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Float value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = 21,69Ӹaa Ujukväärtus = 21,69 Lõppstring = Ӹaa

Huvitavad Artiklid...