C ++ wcstod () - Standardna knjižnica C ++

Funkcija wcstod () v jeziku C ++ razlaga vsebino širokega niza kot številko s plavajočo vejico in vrne njeno vrednost kot dvojno.

Funkcija wcstod () nastavi tudi kazalec, ki kaže na prvi široki znak za zadnjim veljavnim znakom širokega niza, če sploh obstaja, sicer je kazalec nastavljen na nič.

Določen je v datoteki glave.

prototip wcstod ()

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

Funkcija wcstod () za parameter vzame širok niz in kazalec na širok znak, interpretira vsebino širokega niza kot število s plavajočo vejico in vrne dvojno vrednost.

wcstod () Parametri

  • str: Širok niz, ki predstavlja število s plavajočo vejico.
  • str_end: Kazalec na kazalec na širok znak. Vrednost str_end nastavi funkcija na naslednji znak v str za zadnjim veljavnim znakom. Ta parameter je lahko tudi ničelni kazalec.

wcstod () Vrnjena vrednost

Funkcija wcstod () vrne:

  • dvojna vrednost (ki se pretvori iz širokega niza).
  • 0.0, če ni bilo mogoče izvesti nobene veljavne pretvorbe.

Če je pretvorjena vrednost zunaj obsega, pride do napake obsega in vrne se pozitiven ali negativen HUGE_VAL .

Primer 1: Kako deluje funkcija 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; )

Ko zaženete program, bo rezultat:

 Širok niz = 83.201xzҖ ڇ Dvojna vrednost = 83.201 Končni niz = xzҖ ڇ

Primer 2: funkcija wcstod () brez končnih znakov

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

Ko zaženete program, bo rezultat:

 Širok niz = 83.201 Dvojna vrednost = 83.201 Končni niz =

Veljavna vrednost s plavajočo vejico za funkcijo wcstod () je sestavljena iz neobveznega znaka + ali -, ki mu sledi eden od naslednjih nizov:

  • Za decimalno vrednost s plavajočo vejico :
    • Skupina decimalnih števk (0–9), ki neobvezno vsebuje decimalno vejico (.). Na primer: 13.170, -5,63 itd.
    • Izbirni eksponentni del (e ali E), ki mu sledi neobvezni znak + ali - in neprazno zaporedje decimalnih števk. Na primer: 3,46101e + 007, 13,19e-013 itd.
  • Za šestnajstiško vrednost s plavajočo vejico :
    • Niz, ki se začne z 0x ali 0X, čemur sledi neprazno zaporedje šestnajstiških številk, ki po izbiri vsebujejo decimalno vejico (.). Na primer: 0xfa5, -0xb1f.24 itd.
    • Izbirni eksponentni del (p ali P), ki mu sledi neobvezni znak + ali - in neprazno zaporedje šestnajstiških številk. Na primer: 0x51c.23p5, -0x2a.3p-3 itd.
  • Neskončnost :
    • INF ali INFINITY (ignoriranje velikih in malih črk). Na primer: -Inf, InfiNiTy itd.
  • NaN (ni številka) :
    • NAN ali NAN zaporedje (ignoriranje velikih ali malih črk), kjer je zaporedje zaporedje znakov, sestavljeno samo iz alfanumeričnih znakov ali podčrtaja (_). Rezultat je tih NaN. Na primer: Nan, NaNab1 itd.

Primer 3: Kako wcstod () deluje z eksponenti in šestnajstiškimi znaki?

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

Ko zaženete program, bo rezultat:

 Širok niz = -136.31e-2Endψ Dvojna vrednost = -1.3631 Končni niz = Konecψ Širok niz = 0x11a.2c ת Dvojna vrednost = 282.172 Končni niz = ת

Primer 4: Primeri wcstod za INFINITY in 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; )

Ko zaženete program, bo rezultat:

 Širok niz = -inFinityxΣy Dvojna vrednost = -inf Končni niz = xΣy Širok niz = NaN11Щ Dvojna vrednost = nan Končni niz = 11Щ

Veljaven argument s plavajočo vejico za funkcijo wcstod () ima naslednjo obliko:

 (presledek) (- | +) (števke) (.števke) ((e | E) (- | +) števke)

Funkcija wcstod () prezre vse vodilne presledke, dokler ne najde primarnega znaka, ki ni presledek.

Nato, začenši s tem znakom, vzame čim več znakov, ki tvori veljavno predstavitev s plavajočo vejico in jih pretvori v vrednost s plavajočo vejico. Karkoli ostane od niza po zadnjem veljavnem znaku, se shrani v predmet, na katerega kaže str_end.

Primer 5: funkcija wcstod () z vodilnimi presledki

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

Ko zaženete program, bo rezultat:

 Širok niz = 21,69Ӹaa Dvojna vrednost = 21,69 Končni niz = Ӹaa

Zanimive Članki...