C ++ wcstof () - C ++ standarta bibliotēka

Funkcija wcstof () C ++ interpretē plašas virknes saturu kā peldošā komata skaitli un atgriež tās vērtību kā pludiņš.

Šī funkcija arī nosaka rādītāju, kas norāda uz pirmo plato rakstzīmi pēc pēdējās derīgās rakstzīmes, ja tādas ir, pretējā gadījumā rādītājs tiek iestatīts uz nulli.

Tas ir definēts galvenes failā.

wcstof () prototips

 pludiņš wcstof (const wchar_t * str, wchar_t ** str_end);

Funkcija wcstof () kā parametrs ņem plašu virkni un rādītāju uz plašu rakstzīmi, plašās virknes saturu interpretē kā peldošā komata skaitli un atgriež peldošo vērtību.

wcstof () parametri

  • str: plaša virkne, kurā attēlots peldošā komata skaitlis.
  • str_end: Rādītājs uz plaša rakstura rādītāju. Str_end vērtību funkcija iestata nākamajai rakstzīmei str pēc pēdējās derīgās rakstzīmes. Šis parametrs var būt arī nulles rādītājs.

wcstof () Atgriešanās vērtība

Funkcija wcstof () atgriež:

  • pludiņa vērtība (kas tiek pārvērsta no platas virknes).
  • 0.0, ja nevarēja veikt derīgu konversiju.

Ja konvertētā vērtība ir ārpus diapazona, rodas diapazona kļūda un tiek atgriezta pozitīva vai negatīva HUGE_VAL .

1. piemērs: Kā darbojas wcstof () funkcija?

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

Palaidot programmu, izeja būs:

 Platā virkne = 40,001∏c12 Peldošā vērtība = 40,001 Beigu virkne = ∏c12

2. piemērs: funkcija wcstof () bez rakstzīmēm

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

Palaidot programmu, izeja būs:

 Platā virkne = 791.513 Peldošā vērtība = 791.513 Beigas virkne =

Derīga funkcijas wcstof () peldošā komata vērtība sastāv no izvēles zīmes + vai -, kam seko viena no šīm kopām:

  • Decimāldaļas peldošā komata vērtībai :
    • Decimālzīmju grupa (0–9), pēc izvēles saturot decimālzīmi (.). Piemēram: 13.170, -5.63 utt.
    • Neobligāta eksponenta daļa (e vai E), kam seko papildu + vai - zīme un tukša decimālzīmju secība. Piemēram: 3.46101e + 007, 13.19e-013 utt.
  • Heksadecimālai peldošā komata vērtībai :
    • Virkne, kas sākas ar 0x vai 0X, kam seko tukša heksadecimālo ciparu secība, pēc izvēles saturot decimāldaļu (.). Piemēram: 0xfa5, -0xb1f.24 utt.
    • Neobligāta eksponenta daļa (p vai P), kam seko papildu + vai - zīme un tukša heksadecimālo ciparu secība. Piemēram: 0x51c.23p5, -0x2a.3p-3 utt.
  • Bezgalība :
    • INF vai INFINITY (ignorējot gadījumu). Piemēram: -Inf, InfiNiTy utt.
  • NaN (nav skaitlis) :
    • NAN vai NAN secība (ignorējot reģistru), kur secība ir rakstzīmju secība, kas sastāv tikai no burtciparu rakstzīmēm vai pasvītrojuma (_). Rezultāts ir kluss NaN. Piemēram: Nan, NaNab1 utt.

3. piemērs: Kā wcstof () darbojas ar eksponentiem un heksadecimāliem?

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

Palaidot programmu, izeja būs:

 Platā virkne = 39.119e + 2xx ઓ Peldošā vērtība = 3911.9 Beigas virkne = xx ઓ Plašā virkne = 0Xf1.23cØa1 Peldošā vērtība = 241.14 Beigas virkne = Øa1

4. piemērs: wcstof gadījumi INFINITY un 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; )

Palaidot programmu, izeja būs:

 Plaša virkne = -inFinityxΣy Peldošā vērtība = -inf Beigas virkne = xΣy Plaša virkne = NaN11Щ Peldošā vērtība = nan End virkne = 11Щ

Kopumā derīgam funkcijas wcstof () peldošā komata argumentam ir šāda forma:

 (atstarpe) (- | +) (cipari) (. cipari) ((e | E) (- | +) cipari)

Funkcija wcstof () ignorē visas vadošās atstarpes rakstzīmes, līdz tiek atrasts primārais raksturs, kas nav atstarpes.

Tad, sākot ar šo rakstzīmi, ir nepieciešams pēc iespējas vairāk rakstzīmju, kas veido derīgu peldošā komata attēlojumu un pārvērš tos par peldošā komata vērtību. Tas, kas paliek pāri no virknes pēc pēdējās derīgās rakstzīmes, tiek saglabāts str_end norādītajā objektā.

5. piemērs: funkcija wcstof () ar vadošo atstarpi

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

Palaidot programmu, izeja būs:

 Platā virkne = 21,69Ӹaa Peldošā vērtība = 21,69 Beigu virkne = Ӹaa

Interesanti raksti...