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

Funkcija wcstof () v jeziku C ++ interpretira vsebino širokega niza kot številko s plavajočo vejico in vrne njeno vrednost kot float.

Ta funkcija tudi nastavi 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 wcstof ()

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

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

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

wcstof () Vrnjena vrednost

Funkcija wcstof () vrne:

  • plavajoča 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 wcstof ()?

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

Ko zaženete program, bo rezultat:

 Širok niz = 40.001∏c12 Vrednost plavajočega = 40.001 Končni niz = ∏c12

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

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

Ko zaženete program, bo rezultat:

 Široki niz = 791.513 Float vrednost = 791.513 Končni niz =

Veljavna vrednost s plavajočo vejico za funkcijo wcstof () 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 wcstof () 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"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; )

Ko zaženete program, bo rezultat:

 Širok niz = 39.119e + 2xx value Float vrednost = 3911.9 Končni niz = xx ઓ Širok niz = 0Xf1.23cØa1 Float vrednost = 241.14 Končni niz = Øa1

Primer 4: wcstof primerov 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; 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; )

Ko zaženete program, bo rezultat:

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

Na splošno veljaven argument s plavajočo vejico za funkcijo wcstof () ima naslednjo obliko:

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

Funkcija wcstof () 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 wcstof () 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; 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; )

Ko zaženete program, bo rezultat:

 Širok niz = 21,69Ӹaa Vrednost plavajočega = 21,69 Končni niz = Ӹaa

Zanimive Članki...