logo

std::stol funkcija C++ valodā

Šajā rakstā jūs uzzināsit par funkciju std::stol C++ ar tās sintaksi un piemēriem.

Kas ir std::stol()?

The Standarta veidņu bibliotēka (STL) valodā C++ ietver std::stol() funkcija, kas ir īpaši paredzēta konvertēšanai virknes līdz gariem veseliem skaitļiem . Šī funkcija ir īpaši noderīga, strādājot ar lietotāja ievadi vai lasot datus no ārējiem avotiem, kur ievade parasti tiek sniegta virknes formātā. Pēc virknes saņemšanas kā ievades tas atgriež līdzvērtīgu garo veselo skaitli. Tipa std::invalid_argument vai std::out_of_range izņēmums tiek izmests, ja konvertēšana nav iespējama vai ja ievades virknē ir rakstzīmes, kas nav derīga skaitļa daļa.

Sintakse:

Tam ir šāda sintakse:

long std::stol(const std::string& str, size_t* poz = 0, int base = 10);

str: Teksts, kas jāmaina uz garu veselu skaitli.

Poz.: Virknes pirmās nekonvertētās rakstzīmes rādītājs, kas tiek saglabāts kā rādītājs uz objektu size_t. Ja tas nav nepieciešams, šo izvēles parametru var iestatīt uz nullptr.

bāze: Konversijas skaitliskā bāze. Desmit ir noklusējuma vērtība.

Atgriešanas vērtība: Skaitlisko vērtību, kas tika parsēta no ievades virknes, funkcija atgriež kā garu veselu skaitli.

Izņēmumi: Funkcija rada izņēmumu, ja konvertēšanu nevar pabeigt vai ja ievades virknes rakstzīmes nav derīgas. Ja konvertēšanu nevar veikt, iespējamie izņēmumi ir std::invalid_argument un std::out_of_range ja konvertētā vērtība ilgu laiku ir lielāka par attēlojamo diapazonu.

Lietošanas gadījumi:

    Lietotāju veiktā ievades apstrāde:

std::stol() ir noderīga, lai pārveidotu ciparu ievadi, kas tiek saņemta no lietotājiem virknes formātā, ciparu formātā, lai to varētu tālāk apstrādāt.

    Ievades/izvades fails:

Skaitlisku datu lasīšana failos, kas satur virknes kā datu attēlojumu.

    Datu validācija:

Datu validācija ietver apstiprinājumu, ka lietotāja ievadītie dati precīzi atspoguļo garus skaitļus, tos apstiprinot un pārbaudot.

1. programmas piemērs:

Ņemsim piemēru, lai ilustrētu lietošanu std::stol funkcija valodā C++.

 #include #include int main() { std::string numStr = '12345'; try { long result = std::stol(numStr); std::cout << 'Converted value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Invalid argument: ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Out of range: ' << e.what() << std::endl; } return 0; } 

Izvade:

std::stol funkcija C++ valodā

Paskaidrojums:

    Inializācija:
    • Virknes mainīgais, ko sauc numStr programmas sākumā tiek inicializēta ar vērtību '12345'.
    Izmēģiniet bloķēšanu:
    • Kods tiek pārvietots uz izmēģinājuma bloku, norādot, ka tas mēģinās izpildīt tajā ietvertos paziņojumus. Šeit ir apskatīti iespējamie izņēmumi.
    Pārvēršanas mēģinājums:
    • Programma mēģina izmantot std::stol() lai pārveidotu virkni numStr par garu veselu skaitli try blokā.
    Efektīva konversija:
    • Ja reklāmguvums ir veiksmīgs, rezultāts tiek saglabāts mainīgajā rezultātā.
    Izvades konvertētā vērtība:
    • Pēc tam programma veiksmīgi konvertēto skaitli izdrukā standarta izvadē.
    Izņēmumu ārstēšana:
    • Viens no uztveršanas blokiem apstrādā visus izņēmumus, kas rodas konvertēšanas laikā.
    Izņēmums nederīga argumenta uztveršanai:
    • Kļūdas ziņojums, kas norāda, ka arguments ir nederīgs, tiek izdrukāts, ja izņēmuma tips ir std::invalid_argument.
    Izņēmums nozvejai ārpus diapazona:
    • Ja izņēmuma veids ir std::ārpus_diapazona, tiek izdrukāts kļūdas ziņojums, kas norāda, ka konversijas rezultāts ir ārpus derīgā diapazona.
    Atgriešanas nosacījumi:
    • Programma atgriež 0 operētājsistēmai, kas nozīmē veiksmīgu izpildi, un galvenā funkcija beidzas.

Īsāk sakot, kods mēģina izmantot std::stol() funkcija try blokā, lai pārvērstu virkni “12345” par garu veselu skaitli. Rezultāts tiek izdrukāts, ja konvertēšana ir veiksmīga. Tas tver izņēmumus un izdrukā attiecīgo kļūdas ziņojumu, ja tāds rodas (nepareiza argumenta dēļ vai tāpēc, ka rezultāts ir ārpus diapazona).

pandu sērijas iezīmes

Visbeidzot, programma atgriež 0, kas norāda uz veiksmīgu pabeigšanu.

2. programmas piemērs:

Ņemsim vēl vienu piemēru, lai ilustrētu lietošanu std::stol funkcija valodā C++.

 #include #include int main() { std::cout << 'Enter numeric strings to convert to long integers (type 'exit' to end):
'; while (true) { std::string userInput; std::cout <> userInput; if (userInput == 'exit') { std::cout << 'Exiting program. Goodbye!
'; break; } try { long result = std::stol(userInput); std::cout << 'Converted Value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Error: Invalid argument in input '' << userInput << '': ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Error: Out of range for input '' << userInput << '': ' << e.what() << std::endl; } } return 0; } 

Izvade:

std::stol funkcija C++ valodā

Paskaidrojums:

  • Šajā piemērā lietotājam tiek piedāvāts ievadīt konvertējamās virknes vērtības.
  • Lietojumprogramma turpinās pieņemt lietotāja ievadi, līdz lietotājs to ievadīs 'Izeja' izmantojot kamēr cilpu.
  • Std::cin tiek izmantots cilpas iekšpusē, lai lasītu lietotāja ievadi.
  • Ienākšana 'Izeja' liek šai programmai izdrukāt atvadu ziņojumu un beigt cilpu.
  • Ja nē, tas mēģina izmantot std::stol lai pārvērstu ievadi garā.
  • Konvertētā vērtība tiek izdrukāta, ja konvertēšana ir veiksmīga.
  • Tas uztver izņēmumus (nederīgus argumentus, ārpus diapazona), izdrukā kļūdas ziņojumu un turpina.
  • Gaidot jaunu lietotāja ievadi, cilpa pāriet uz nākamo iterāciju.