logo

funkcija std::stol v C++

V tem članku boste spoznali funkcijo std::stol v C++ z njeno sintakso in primeri.

razvrsti arraylist v javi

Kaj je std::stol()?

The Standardna knjižnica predlog (STL) v C++ vključuje std::stol() funkcijo, ki je narejena posebej za pretvorbo nizov v dolga cela števila . Ta funkcija je še posebej uporabna pri delu z uporabniškim vnosom ali branju podatkov iz zunanjih virov - kjer je vnos običajno podan v obliki niza. Po prejemu niza kot vhod vrne enakovredno dolgo celo število. Izjema tipa std::invalid_argument ali std::out_of_range se vrže, če pretvorba ni mogoča ali če vhodni niz vsebuje znake, ki niso del veljavnega števila.

Sintaksa:

Ima naslednjo sintakso:

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

str: Besedilo, ki ga je treba spremeniti v dolgo celo število.

položaj: Indeks prvega nepretvorjenega znaka niza, shranjenega kot kazalec na objekt size_t. Če ni potreben, lahko ta izbirni parameter nastavite na nullptr.

osnova: Številčna osnova pretvorbe. Deset je privzeto.

Povratna vrednost: Številsko vrednost, ki je bila razčlenjena iz vhodnega niza, funkcija vrne kot dolgo celo število.

Izjeme: Funkcija sproži izjemo, če pretvorbe ni mogoče dokončati ali če so znaki v vhodnem nizu neveljavni. Če pretvorbe ni bilo mogoče izvesti, so možne izjeme std::neveljaven_argument in std::zunaj_razpona če je pretvorjena vrednost dalj časa večja od razpona, ki ga je mogoče predstaviti.

Primeri uporabe:

    Obdelava vnosa s strani uporabnikov:

std::stol() je uporaben za pretvorbo številskega vnosa, ki ga uporabniki prejmejo v nizovnem formatu, v številski tip, tako da ga je mogoče nadalje obdelati.

    Vhodno/izhodna datoteka:

Branje numeričnih podatkov v datotekah, ki vsebujejo nize kot predstavitev podatkov.

    Preverjanje podatkov:

Preverjanje podatkov vključuje potrditev, da uporabniški vnosi natančno predstavljajo dolga števila, tako da jih potrdimo in preverimo.

Primer programa 1:

Vzemimo primer za ponazoritev uporabe funkcija std::stol v 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; } 

Izhod:

std::stol funkcija v C++

Pojasnilo:

    Inicializacija:
    • Poklicana spremenljivka niza numStr se inicializira z vrednostjo '12345' na začetku programa.
    Poskusite blokirati:
    • Koda se premakne v poskusni blok in signalizira, da bo poskušala zagnati stavke, ki jih vsebuje. Tukaj so obravnavane morebitne izjeme.
    Poskus pretvorbe:
    • Program poskuša uporabiti std::stol() da spremenite niz numStr v dolgo celo število znotraj poskusnega bloka.
    Učinkovita pretvorba:
    • Če je pretvorba uspešna, se rezultat ohrani v spremenljivki rezultat.
    Izhodna pretvorjena vrednost:
    • Uspešno pretvorjeno število nato program natisne v standardni izhod.
    Obravnava izjem:
    • Eden od blokov catch obravnava vse izjeme, ki se pojavijo med pretvorbo.
    Izjema za lovljenje neveljavnih argumentov:
    • Če je izjema vrste std::invalid_argument, se natisne sporočilo o napaki, ki navaja, da argument ni veljaven.
    Izjema za ulov izven dosega:
    • Sporočilo o napaki, ki navaja, da je rezultat pretvorbe zunaj veljavnega obsega, se natisne, če je izjema vrste std::out_of_range.
    Vračilo blaga:
    • Program operacijskemu sistemu vrne 0, kar pomeni uspešno izvedbo, in glavna funkcija se konča.

Na kratko, koda poskuša uporabiti std::stol() znotraj poskusnega bloka za pretvorbo niza '12345' v dolgo celo število. Rezultat se natisne, če je pretvorba uspešna. Zajame izjeme in natisne ustrezno sporočilo o napaki, če se pojavi (zaradi nepravilnega argumenta ali ker je rezultat izven obsega).

Nazadnje program vrne 0, kar pomeni uspešen zaključek.

Primer programa 2:

Vzemimo še en primer za ponazoritev uporabe funkcija std::stol v 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; } 

Izhod:

std::stol funkcija v C++

Pojasnilo:

  • V tem primeru je uporabnik pozvan, da vnese vrednosti niza, ki jih je treba pretvoriti.
  • Aplikacija bo še naprej sprejemala uporabniške vnose, dokler uporabnik ne vnese 'izhod' z uporabo zanke while.
  • Std::cin se uporablja znotraj zanke za branje uporabniškega vnosa.
  • Vstopanje 'izhod' povzroči, da ta program natisne poslovilno sporočilo in konča zanko.
  • Če ne, poskuša uporabiti std::stol za pretvorbo vnosa v dolgo.
  • Če je pretvorba uspešna, se pretvorjena vrednost natisne.
  • Ujame izjeme (neveljavni argumenti, izven obsega), natisne sporočilo o napaki in nadaljuje.
  • Ko čaka na vnos novega uporabnika, se zanka premakne na naslednjo ponovitev.