I denne artikel vil du lære om std::stol-funktionen i C++ med dens syntaks og eksempler.
Hvad er std::stol()?
Det Standard skabelonbibliotek (STL) i C++ inkluderer std::stol() funktion, som er specielt lavet til konvertering strenge til lange heltal . Denne funktion er især nyttig, når du arbejder med brugerinput eller læser data fra eksterne kilder - hvor input normalt gives i strengformat. Det returnerer det tilsvarende lange heltal efter at have modtaget en streng som input. En undtagelse af typen std::invalid_argument eller std::out_of_range kastes, hvis konverteringen ikke er mulig, eller hvis inputstrengen indeholder tegn, der ikke er en del af et gyldigt tal.
Syntaks:
Den har følgende syntaks:
long std::stol(const std::string& str, size_t* pos = 0, int base = 10);
str: Teksten, der skal ændres til et langt heltal.
Pos: Indekset for strengens første ukonverterede tegn, gemt som en pointer til et size_t-objekt. Hvis det ikke er påkrævet, kan denne valgfri parameter indstilles til nullptr.
grundlag: Konverteringens numeriske basis. Ti er standard.
arraylist sorteret java
Returværdi: Den numeriske værdi, der blev parset fra inputstrengen, returneres af funktionen som et langt heltal.
Undtagelser: Funktionen afgiver en undtagelse, hvis konverteringen ikke kan fuldføres, eller hvis tegn i inputstrengen er ugyldige. Hvis ingen konvertering kunne udføres, er de mulige undtagelser std::ugyldigt_argument og std::out_of_range hvis den konverterede værdi er større end det repræsentative interval i en lang periode.
Brugstilfælde:
std::stol() er nyttig til at transformere numerisk input, der modtages fra brugere i strengformat, til en numerisk type, så det kan behandles yderligere.
Læsning af numeriske data i filer, der indeholder strenge som dataenes repræsentation.
Datavalidering involverer bekræftelse af, at brugerinput nøjagtigt repræsenterer lange tal ved at validere og verificere dem.
Eksempel program 1:
Lad os tage et eksempel for at illustrere brugen af std::stol funktion i 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; }
Produktion:
Forklaring:
- En strengvariabel kaldet numStr initialiseres med værdien '12345' i begyndelsen af programmet.
- Koden flytter ind i en try-blok, hvilket signalerer, at den vil forsøge at køre sætningerne indeholdt i. Potentielle undtagelser behandles her.
- Programmet forsøger at bruge std::stol() at transformere strengen numStr til et langt heltal inde i try-blokken.
- Resultatet bevares i det variable resultat, hvis konverteringen lykkes.
- Det succesfulde konverterede tal udskrives derefter til standardoutputtet af programmet.
- En af catch-blokkene håndterer eventuelle undtagelser, der opstår under konverteringen.
- En fejlmeddelelse om, at argumentet er ugyldigt, udskrives, hvis undtagelsen er af typen std::invalid_argument.
- En fejlmeddelelse om, at konverteringsresultatet er uden for det gyldige interval, udskrives, hvis undtagelsen er af typen std::out_of_range.
- Programmet returnerer 0 til operativsystemet, hvilket betyder vellykket udførelse, og hovedfunktionen slutter.
Kort fortalt forsøger koden at bruge std::stol() funktion inde i en prøveblok for at konvertere strengen '12345' til et langt heltal. Resultatet udskrives, hvis konverteringen lykkes. Den fanger undtagelser og udskriver den relevante fejlmeddelelse, hvis en sådan opstår (enten på grund af et forkert argument, eller fordi resultatet er uden for rækkevidde).
Til sidst returnerer programmet 0, hvilket betyder vellykket afslutning.
Eksempel program 2:
Lad os tage et andet eksempel for at illustrere brugen af std::stol funktion i 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; }
Produktion:
autocad stretch kommando
Forklaring:
- I dette eksempel bliver brugeren bedt om at indtaste strengværdier, der skal konverteres.
- Applikationen vil blive ved med at acceptere brugerinput, indtil brugeren indtaster 'Afslut' ved hjælp af en while-løkke.
- Indtastning 'Afslut' får dette program til at udskrive en afskedsbesked og afslutte løkken.
- Hvis ikke, forsøger den at bruge std::stol at konvertere input til en lang.
- Den konverterede værdi udskrives, hvis konverteringen lykkes.
- Den fanger undtagelser (ugyldige argumenter, uden for rækkevidde), udskriver en fejlmeddelelse og fortsætter.
- Mens den venter på nyt brugerinput, går løkken videre til næste iteration.