Šiame straipsnyje sužinosite apie std::stol funkciją C++, jos sintaksę ir pavyzdžius.
Kas yra std::stol()?
The Standartinė šablonų biblioteka (STL) C++ apima std::stol() funkcija, kuri yra specialiai sukurta konvertavimui eilutes iki ilgų sveikųjų skaičių . Ši funkcija ypač naudinga dirbant su vartotojo įvestimi arba nuskaitant duomenis iš išorinių šaltinių, kur įvestis paprastai pateikiama eilutės formatu. Jis grąžina lygiavertį ilgą sveikąjį skaičių, gavęs eilutę kaip įvestį. Tipo std::invalid_argument arba std::out_of_range išimtis išmetama, jei konversija neįmanoma arba jei įvesties eilutėje yra simbolių, kurie nėra tinkamo skaičiaus dalis.
Sintaksė:
Ji turi tokią sintaksę:
long std::stol(const std::string& str, size_t* poz = 0, int bazė = 10);
str: Tekstas, kurį reikia pakeisti į ilgą sveikąjį skaičių.
dalinė priklausomybė
Poz.: Pirmojo nekonvertuoto eilutės simbolio indeksas, saugomas kaip objekto size_t rodyklė. Jei to nereikia, šį pasirenkamą parametrą galima nustatyti į nullptr.
bazė: Konversijos skaitinė bazė. Dešimt yra numatytasis.
Grąžinimo vertė: Skaitinę reikšmę, kuri buvo išanalizuota iš įvesties eilutės, funkcija grąžina kaip ilgą sveikąjį skaičių.
Išimtys: Funkcija padaro išimtį, jei konversija negali būti užbaigta arba jei įvesties eilutės simboliai yra neteisingi. Jei konvertuoti nepavyko, galimos išimtys std::negaliojantis_argumentas ir std::out_of_range jei konvertuota vertė ilgą laiką yra didesnė už reprezentuojamą diapazoną.
Naudojimo atvejai:
std::stol() yra naudinga transformuojant skaitinę įvestį, gautą iš vartotojų eilutės formatu, į skaitinį tipą, kad būtų galima toliau apdoroti.
Skaitmeninių duomenų skaitymas failuose, kuriuose yra eilutės kaip duomenų atvaizdavimas.
Java trukmė
Duomenų patvirtinimas apima patvirtinimą, kad vartotojo įvestis tiksliai atspindi ilgus skaičius, juos patvirtinant ir tikrinant.
1 programos pavyzdys:
Paimkime pavyzdį, iliustruojantį naudojimą std::stol funkcija C++ kalboje.
#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; }
Išvestis:
vardas
Paaiškinimas:
- Eilutės kintamasis vadinamas numStr programos pradžioje inicijuojamas reikšme „12345“.
- Kodas pereina į bandomąjį bloką, signalizuodamas, kad jis bandys paleisti jame esančius teiginius. Čia aptariamos galimos išimtys.
- Programa bando naudotis std::stol() transformuoti eilutę numStr į ilgą sveikąjį skaičių try bloko viduje.
- Jei konversija sėkminga, rezultatas išsaugomas kintamajame rezultate.
- Tada sėkmingai konvertuotas skaičius programos atspausdinamas į standartinę išvestį.
- Vienas iš sugavimo blokų apdoroja visas konvertavimo metu atsirandančias išimtis.
- Išspausdinamas klaidos pranešimas, nurodantis, kad argumentas neteisingas, jei išimtis yra std::negaliojantis_argumentas.
- Išspausdinamas klaidos pranešimas, nurodantis, kad konversijos rezultatas yra už galiojančio diapazono ribų, jei išimtis yra std::out_of_range.
- Programa grąžina operacinei sistemai 0, o tai reiškia sėkmingą vykdymą, o pagrindinė funkcija baigiasi.
Trumpai tariant, kodas bando naudoti std::stol() funkcija bandomajame bloke konvertuoti eilutę „12345“ į ilgą sveikąjį skaičių. Rezultatas išspausdinamas, jei konversija sėkminga. Ji užfiksuoja išimtis ir išspausdina atitinkamą klaidos pranešimą, jei tokia atsiranda (dėl neteisingo argumento arba dėl to, kad rezultatas yra už diapazono ribų).
Galiausiai programa grąžina 0, o tai reiškia sėkmingą užbaigimą.
2 programos pavyzdys:
Paimkime kitą pavyzdį, iliustruojantį naudojimą std::stol funkcija C++ kalboje.
#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; }
Išvestis:
Paaiškinimas:
- Šiame pavyzdyje vartotojas raginamas įvesti eilutės reikšmes, kurias reikia konvertuoti.
- Programa priims vartotojo įvestį, kol vartotojas įves 'išeiti' naudojant trumpąją kilpą.
- Įeinant 'išeiti' priverčia šią programą išspausdinti atsisveikinimo pranešimą ir užbaigti ciklą.
- Jei ne, jis bando naudoti std::stol norėdami konvertuoti įvestį į ilgą.
- Konvertuota vertė išspausdinama, jei konvertavimas sėkmingas.
- Jis užfiksuoja išimtis (netinkamus argumentus, už diapazono ribų), išspausdina klaidos pranešimą ir tęsia.
- Laukiant naujo vartotojo įvesties, ciklas pereina į kitą iteraciją.