logo

std::stol funksjon i C++

I denne artikkelen vil du lære om std::stol-funksjonen i C++ med dens syntaks og eksempler.

Hva er std::stol()?

De Standard malbibliotek (STL) i C++ inkluderer std::stol() funksjon, som er spesielt laget for konvertering strenger til lange heltall . Denne funksjonen er spesielt nyttig når du arbeider med brukerinndata eller lesing av data fra eksterne kilder - der input vanligvis er gitt i strengformat. Den returnerer det tilsvarende lange heltall etter å ha mottatt en streng som input. Et unntak av typen std::invalid_argument eller std::out_of_range blir kastet hvis konverteringen ikke er mulig eller hvis inndatastrengen inneholder tegn som ikke er en del av et gyldig tall.

Syntaks:

Den har følgende syntaks:

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

str: Teksten som må endres til et langt heltall.

Posisjon: Indeksen til strengens første ukonverterte tegn, lagret som en peker til et size_t-objekt. Hvis det ikke er nødvendig, kan denne valgfrie parameteren settes til nullptr.

utgangspunkt: Konverteringens numeriske base. Ti er standard.

eksempel på json-format

Returverdi: Den numeriske verdien som ble analysert fra inndatastrengen, returneres av funksjonen som et langt heltall.

Unntak: Funksjonen gir et unntak hvis konverteringen ikke kan fullføres eller hvis tegnene i inndatastrengen er ugyldige. Hvis ingen konvertering kan gjøres, er de mulige unntakene std::ugyldig_argument og std::out_of_range hvis den konverterte verdien er større enn det representerbare området for en lang.

Brukstilfeller:

    Inndatabehandling av brukere:

std::stol() er nyttig for å transformere numeriske inndata som mottas fra brukere i strengformat til en numerisk type slik at den kan behandles videre.

    Inn-/utdatafil:

Lese numeriske data i filer som inneholder strenger som dataenes representasjon.

    Datavalidering:

Datavalidering innebærer å bekrefte at brukerinndata nøyaktig representerer lange tall ved å validere og verifisere dem.

Eksempel program 1:

La oss ta et eksempel for å illustrere bruken av std::stol funksjon 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; } 

Produksjon:

std::stol funksjon i C++

Forklaring:

    Intialisering:
    • En strengvariabel kalt numStr initialiseres med verdien '12345' i begynnelsen av programmet.
    Prøv Block:
    • Koden flyttes inn i en prøveblokk, og signaliserer at den vil prøve å kjøre setningene i. Potensielle unntak behandles her.
    Konverteringsforsøk:
    • Programmet prøver å bruke std::stol() for å transformere strengen numStr til et langt heltall inne i try-blokken.
    Effektiv konvertering:
    • Utfallet beholdes i variabelresultatet hvis konverteringen er vellykket.
    Utdata konvertert verdi:
    • Det vellykket konverterte tallet skrives deretter ut til standardutdata av programmet.
    Behandling av unntak:
    • En av fangstblokkene håndterer eventuelle unntak som oppstår under konverteringen.
    Unntak for å fange ugyldig argument:
    • En feilmelding om at argumentet er ugyldig skrives ut hvis unntaket er av typen std::invalid_argument.
    Unntak for Catch Out of Range:
    • En feilmelding om at konverteringsresultatet er utenfor det gyldige området skrives ut hvis unntaket er av typen std::out_of_range.
    Returregler:
    • Programmet returnerer 0 til operativsystemet, noe som betyr vellykket kjøring, og hovedfunksjonen avsluttes.

Kort fortalt prøver koden å bruke std::stol() funksjon inne i en prøveblokk for å konvertere strengen '12345' til et langt heltall. Resultatet skrives ut hvis konverteringen er vellykket. Den fanger opp unntak og skriver ut den relevante feilmeldingen i tilfelle en oppstår (enten på grunn av et feil argument eller fordi resultatet er utenfor rekkevidde).

Til slutt returnerer programmet 0, noe som betyr vellykket fullføring.

Eksempel program 2:

La oss ta et annet eksempel for å illustrere bruken av std::stol funksjon 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; } 

Produksjon:

git pull syntaks
std::stol funksjon i C++

Forklaring:

  • I dette eksemplet blir brukeren bedt om å angi strengverdier som skal konverteres.
  • Applikasjonen vil fortsette å godta brukerinndata til brukeren legger inn 'exit' ved hjelp av en while-løkke.
  • Std::cin brukes inne i loopen for å lese brukerinndata.
  • Går inn 'exit' får dette programmet til å skrive ut en avskjedsmelding og avslutte loopen.
  • Hvis ikke, prøver den å bruke std::stol for å konvertere inngangen til en lang.
  • Den konverterte verdien skrives ut hvis konverteringen er vellykket.
  • Den fanger opp unntak (ugyldige argumenter, utenfor rekkevidde), skriver ut en feilmelding og fortsetter.
  • Mens den venter på ny brukerinndata, går loopen videre til neste iterasjon.