logo

funcția std::stol în C++

În acest articol, veți afla despre funcția std::stol în C++ cu sintaxa și exemplele sale.

Ce este std::stol()?

The Bibliotecă de șabloane standard (STL) în C++ include std::stol() funcție, care este special creată pentru conversie șiruri la numere întregi lungi . Această funcție este utilă în special atunci când lucrați cu introducerea utilizatorului sau citiți date din surse externe - unde intrarea este de obicei dată în format șir. Returnează întregul lung echivalent după ce a primit un șir ca intrare. O excepție de tipul std::invalid_argument sau std::out_of_range este aruncată dacă conversia nu este posibilă sau dacă șirul de intrare conține caractere care nu fac parte dintr-un număr valid.

Sintaxă:

Are următoarea sintaxă:

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

modele de design în java

str: Textul care trebuie schimbat într-un număr întreg lung.

Poz.: Indexul primului caracter neconvertit al șirului, stocat ca indicator către un obiect size_t. Dacă nu este necesar, acest parametru opțional poate fi setat la nullptr.

baza: Baza numerică a conversiei. Zece este implicit.

meniul de setări Android

Valoare returnată: Valoarea numerică care a fost analizată din șirul de intrare este returnată de funcție ca un întreg lung.

Excepții: Funcția generează o excepție dacă conversia nu poate fi finalizată sau dacă caracterele din șirul de intrare sunt invalide. Dacă nu se poate face nicio conversie, posibilele excepții sunt std::argument_invalid și std::out_of_range dacă valoarea convertită este mai mare decât intervalul reprezentabil pentru o perioadă lungă.

Cazuri de utilizare:

    Procesarea intrărilor de către utilizatori:

std::stol() este util pentru transformarea intrărilor numerice primite de la utilizatori în format șir într-un tip numeric, astfel încât să poată fi procesate în continuare.

    Fișier de intrare/ieșire:

Citirea datelor numerice în fișiere care conțin șiruri de caractere ca reprezentare a datelor.

    Data validarii:

Validarea datelor implică confirmarea faptului că intrările utilizatorului reprezintă cu exactitate numere lungi prin validarea și verificarea acestora.

Exemplu de program 1:

Să luăm un exemplu pentru a ilustra utilizarea funcția std::stol în 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; } 

Ieșire:

cum se transformă șirul în întreg
funcția std::stol în C++

Explicaţie:

    Inițializare:
    • O variabilă șir numită numStr este inițializată cu valoarea „12345” la începutul programului.
    Încearcă Block:
    • Codul se mută într-un bloc try, semnalând că va încerca să ruleze instrucțiunile conținute în el. Potențialele excepții sunt tratate aici.
    Încercarea de conversie:
    • Programul încearcă să folosească std::stol() pentru a transforma șirul numStr într-un număr întreg lung în interiorul blocului try.
    Conversie efectivă:
    • Rezultatul este păstrat în variabila rezultat dacă conversia are succes.
    Valoare convertită de ieșire:
    • Numărul convertit cu succes este apoi tipărit la rezultatul standard de către program.
    Tratarea excepțiilor:
    • Unul dintre blocurile catch gestionează orice excepții care apar în timpul conversiei.
    Excepție pentru capturarea unui argument invalid:
    • Un mesaj de eroare care afirmă că argumentul este invalid este tipărit dacă excepția este de tipul std::invalid_argument.
    Excepție pentru Captură în afara intervalului:
    • Un mesaj de eroare care afirmă că rezultatul conversiei este în afara intervalului valid este tipărit dacă excepția este de tipul std::out_of_range.
    POLITICA DE RETURNARE:
    • Programul returnează 0 sistemului de operare, ceea ce înseamnă execuția cu succes, iar funcția principală se termină.

Pe scurt, codul încearcă să folosească std::stol() funcție în interiorul unui bloc try pentru a converti șirul „12345” într-un întreg lung. Rezultatul este tipărit dacă conversia are succes. Captează excepții și tipărește mesajul de eroare relevant în cazul în care apare unul (fie din cauza unui argument incorect, fie din cauza rezultatului în afara intervalului).

În cele din urmă, programul returnează 0, ceea ce înseamnă finalizarea cu succes.

text de împachetare css

Exemplu de program 2:

Să luăm un alt exemplu pentru a ilustra utilizarea funcția std::stol în 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; } 

Ieșire:

funcția std::stol în C++

Explicatie:

  • În acest exemplu, utilizatorului i se cere să introducă valorile șirurilor de conversie.
  • Aplicația va continua să accepte intrarea utilizatorului până când acesta va introduce 'Ieșire' folosind o buclă while.
  • Std::cin este utilizat în interiorul buclei pentru a citi intrarea utilizatorului.
  • Intrând 'Ieșire' determină acest program să imprime un mesaj de adio și să încheie bucla.
  • Dacă nu, încearcă să folosească std::stol pentru a converti intrarea într-un lung.
  • Valoarea convertită este tipărită dacă conversia are succes.
  • Captează excepții (argumente nevalide, în afara intervalului), tipărește un mesaj de eroare și continuă.
  • În timp ce așteaptă intrarea noului utilizator, bucla trece la următoarea iterație.