logo

funkcia std::stol v C++

V tomto článku sa dozviete o funkcii std::stol v C++ s jej syntaxou a príkladmi.

Čo je std::stol()?

The Štandardná knižnica šablón (STL) v C++ zahŕňa std::stol() funkciu, ktorá je špeciálne vyrobená na konverziu reťazce na dlhé celé čísla . Táto funkcia je užitočná najmä pri práci s užívateľským vstupom alebo pri čítaní údajov z externých zdrojov – kde je vstup zvyčajne zadaný vo formáte reťazca. Po prijatí reťazca ako vstupu vráti ekvivalentné dlhé celé číslo. Výnimka typu std::invalid_argument alebo std::out_of_range sa vyvolá, ak konverzia nie je možná alebo ak vstupný reťazec obsahuje znaky, ktoré nie sú súčasťou platného čísla.

Syntax:

Má nasledujúcu syntax:

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

panel nástrojov rýchleho prístupu word

str: Text, ktorý je potrebné zmeniť na dlhé celé číslo.

Poz.: Index prvého nekonvertovaného znaku reťazca, uložený ako ukazovateľ na objekt size_t. Ak sa to nevyžaduje, tento voliteľný parameter možno nastaviť na hodnotu nullptr.

základňa: Číselný základ prevodu. Predvolená hodnota je desať.

štátov v USA

Návratová hodnota: Číselná hodnota, ktorá bola analyzovaná zo vstupného reťazca, je vrátená funkciou ako dlhé celé číslo.

Výnimky: Funkcia vyvolá výnimku, ak konverziu nemožno dokončiť alebo ak sú znaky vo vstupnom reťazci neplatné. Ak nie je možné vykonať žiadnu konverziu, sú možné výnimky std::invalid_argument a std::out_of_range ak je konvertovaná hodnota dlhší čas väčšia ako reprezentovateľný rozsah.

Prípady použitia:

    Spracovanie vstupov používateľmi:

std::stol() je užitočný na transformáciu numerického vstupu prijatého od používateľov v reťazcovom formáte na numerický typ, aby ho bolo možné ďalej spracovať.

    Vstupný/výstupný súbor:

Čítanie číselných údajov v súboroch obsahujúcich reťazce ako reprezentáciu údajov.

    Overovanie dát:

Validácia údajov zahŕňa potvrdenie, že používateľské vstupy presne reprezentujú dlhé čísla ich validáciou a overením.

Príklad programu 1:

Uveďme si príklad na ilustráciu použitia funkcia 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; } 

Výkon:

ako získať skryté aplikácie
funkcia std::stol v C++

Vysvetlenie:

    Inicializácia:
    • Reťazcová premenná s názvom numStr sa inicializuje s hodnotou „12345“ na začiatku programu.
    Skúste blokovať:
    • Kód sa presunie do bloku try, čo signalizuje, že sa pokúsi spustiť príkazy obsiahnuté v ňom. Tu sa riešia možné výnimky.
    Pokus o konverziu:
    • Program sa pokúša použiť std::stol() na transformáciu reťazca numStr na dlhé celé číslo v bloku try.
    Efektívna konverzia:
    • Ak je konverzia úspešná, výsledok sa ponechá v premennej výsledok.
    Výstupná konvertovaná hodnota:
    • Úspešne prevedené číslo potom program vytlačí na štandardný výstup.
    Ošetrenie výnimiek:
    • Jeden z blokov catch spracováva všetky výnimky, ktoré vzniknú počas konverzie.
    Výnimka pre zachytenie neplatného argumentu:
    • Ak je výnimka typu std::invalid_argument, vytlačí sa chybové hlásenie, že argument je neplatný.
    Výnimka pre úlovok mimo dosahu:
    • Ak je výnimka typu std::out_of_range, vytlačí sa chybové hlásenie, že výsledok konverzie je mimo platného rozsahu.
    Pravidlá vrátenia tovaru:
    • Program vráti operačnému systému 0, čo znamená úspešné vykonanie, a hlavná funkcia sa ukončí.

Stručne povedané, kód sa pokúša použiť std::stol() funkcia vnútri bloku try na konverziu reťazca „12345“ na dlhé celé číslo. Ak je prevod úspešný, výsledok sa vytlačí. Zachytáva výnimky a vypíše príslušné chybové hlásenie v prípade, že sa vyskytne (buď z dôvodu nesprávneho argumentu alebo preto, že výsledok je mimo rozsahu).

Nakoniec program vráti 0, čo znamená úspešné dokončenie.

abstraktná trieda

Príklad programu 2:

Zoberme si ďalší príklad na ilustráciu použitia funkcia 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; } 

Výkon:

funkcia std::stol v C++

vysvetlenie:

  • V tomto príklade je používateľ vyzvaný, aby zadal hodnoty reťazca, ktoré sa majú skonvertovať.
  • Aplikácia bude naďalej akceptovať vstup od používateľa, kým používateľ nezadá 'VÝCHOD' pomocou while slučky.
  • Std::cin sa používa vo vnútri slučky na čítanie vstupu používateľa.
  • Zadávanie 'VÝCHOD' spôsobí, že tento program vytlačí správu na rozlúčku a ukončí cyklus.
  • Ak nie, pokúsi sa použiť std::stol na konverziu vstupu na dlhý.
  • Ak je prevod úspešný, prevedená hodnota sa vytlačí.
  • Zachytí výnimky (neplatné argumenty, mimo rozsahu), vypíše chybové hlásenie a pokračuje.
  • Počas čakania na nový vstup používateľa sa cyklus presunie na ďalšiu iteráciu.