C ++ wcstold () - C ++ standardraamatukogu

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

Funktsioon wcstold () 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.

wcstold () prototüüp

 pikk topelt wcstold (const wchar_t * str, wchar_t ** str_end);

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

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

wcstold () Tagastusväärtus

Funktsioon wcstold () tagastab:

  • pikk 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 wcstold () töötab?

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

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

 Lai string = 93.410η ת Pikk topeltväärtus = 93.41 End String = η ת

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

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

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

 Lai string = 93,410 pikk topeltväärtus = 93,41 lõpu string =

Funktsiooni wcstold () 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 wcstold () 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"34.901u00c6u00f1"; wchar_t str2() = L"0Xfc1.a12u03c7r12"; wchar_t *end; long double value; value = wcstold(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstold(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = 34.901Æñ pikk topeltväärtus = 34.901 lõpu string = Æñ lai string = 0Xfc1.a12χr12 pikk topeltväärtus = 4033.63 lõpu string = χr12

Näide 4: wcstoldi 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"NaN22u0429"; wchar_t *end; long double value; value = wcstold(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstold(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Lai string = inFinityxΣy Pikk topeltväärtus = inf Lõppstring = xΣy Lai string = NaN22Щ Pikk topeltväärtus = nan End String = 22Щ

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

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

Funktsioon wcstold () ignoreerib kõiki juhtivaid tühimärke, kuni leitakse esmane mitte-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 wcstold () juhtiva tühimikuga

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

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

 Lai string = 59.013 कॵ Pikk topeltväärtus = 59.013 Lõppstring = कॵ

Huvitavad Artiklid...