logo

стд::стол функција у Ц++

У овом чланку ћете научити о функцији стд::стол у Ц++ са њеном синтаксом и примерима.

јава програмска петља

Шта је стд::стол()?

Тхе Стандардна библиотека шаблона (СТЛ) у Ц++ укључује стд::стол() функција, која је посебно направљена за претварање низове на дуге целе бројеве . Ова функција је посебно корисна када радите са корисничким уносом или читате податке из спољних извора - где се унос обично даје у формату стрингова. Враћа еквивалентан дуг цео број након што прими стринг као улаз. Изузетак типа стд::инвалид_аргумент или стд::оут_оф_ранге се баца ако конверзија није могућа или ако улазни низ садржи знакове који нису део важећег броја.

Синтакса:

Има следећу синтаксу:

лонг стд::стол(цонст стд::стринг& стр, сизе_т* пос = 0, инт басе = 10);

стр: Текст који треба променити у дуг цео број.

Поз: Индекс првог неконвертованог карактера стринга, ускладиштеног као показивач на објекат сизе_т. Ако није потребан, овај опциони параметар се може подесити на нуллптр.

база: Бројчана база конверзије. Десет је подразумевано.

Повратна вредност: Нумеричку вредност која је рашчлањена из улазног низа функција враћа као дуг цео број.

Изузеци: Функција избацује изузетак ако конверзија не може да се заврши или ако су знакови у улазном низу неважећи. Ако се конверзија не може извршити, могући изузеци су стд::инвалид_аргумент и стд::оут_оф_ранге ако је конвертована вредност већа од репрезентативног опсега за дуже време.

Случајеви употребе:

    Обрада уноса од стране корисника:

стд::стол() је користан за трансформацију нумеричког уноса који је примљен од корисника у формату стринга у нумерички тип тако да се може даље обрадити.

    Улазни/излазни фајл:

Читање нумеричких података у датотекама које садрже низове као репрезентацију података.

    Валидација података:

Валидација података укључује потврђивање да кориснички уноси тачно представљају дугачке бројеве тако што их потврђујемо и верификујемо.

Пример програма 1:

Узмимо пример да илуструјемо употребу стд::стол функција у Ц++.

 #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; } 

Излаз:

стд::стол функција у Ц++

Објашњење:

    иницијализација:
    • Ниска променљива под називом нумСтр се иницијализује са вредношћу '12345' на почетку програма.
    Покушајте Блокирати:
    • Код се помера у блок три, сигнализирајући да ће покушати да покрене изјаве садржане у њему. Овде се говори о потенцијалним изузецима.
    Покушај конверзије:
    • Програм покушава да користи стд::стол() да трансформише стринг нумСтр у дуг цео број унутар блока три.
    Ефективна конверзија:
    • Исход се чува у променљивој резултату ако је конверзија успешна.
    Излазна конвертована вредност:
    • Успешно конвертовани број програм затим штампа на стандардни излаз.
    Третирање изузетака:
    • Један од блокова цатцх обрађује све изузетке који настану током конверзије.
    Изузетак за хватање неважећег аргумента:
    • Порука о грешци у којој се наводи да је аргумент неважећи се штампа ако је изузетак типа стд::инвалид_аргумент.
    Изузетак за улов ван домета:
    • Порука о грешци у којој се наводи да је резултат конверзије изван важећег опсега се штампа ако је изузетак типа стд::оут_оф_ранге.
    Политика враћања:
    • Програм враћа 0 оперативном систему, што означава успешно извршење, а главна функција се завршава.

Укратко, код покушава да користи стд::стол() функција унутар блока три да конвертује стринг '12345' у дуг цео број. Резултат се штампа ако је конверзија успешна. Он хвата изузетке и штампа релевантну поруку о грешци у случају да се појави (било због погрешног аргумента или зато што је резултат изван опсега).

Коначно, програм враћа 0, што означава успешан завршетак.

Пример програма 2:

Узмимо још један пример да илуструјемо употребу стд::стол функција у Ц++.

 #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; } 

Излаз:

стд::стол функција у Ц++

Објашњење:

  • У овом примеру, од корисника се тражи да унесе вредности низа које ће се конвертовати.
  • Апликација ће наставити да прихвата кориснички унос док корисник не унесе 'излаз' користећи вхиле петљу.
  • Стд::цин се користи унутар петље за читање корисничког уноса.
  • Улазак 'излаз' узрокује да овај програм одштампа опроштајну поруку и прекине петљу.
  • Ако не, покушава да користи стд::стол да конвертујете унос у дуг.
  • Конвертована вредност се штампа ако је конверзија успешна.
  • Хвата изузетке (неважећи аргументи, ван опсега), штампа поруку о грешци и наставља.
  • Док чека на унос новог корисника, петља прелази на следећу итерацију.