У овом чланку ћете научити о функцији стд::стол у Ц++ са њеном синтаксом и примерима.
јава програмска петља
Шта је стд::стол()?
Тхе Стандардна библиотека шаблона (СТЛ) у Ц++ укључује стд::стол() функција, која је посебно направљена за претварање низове на дуге целе бројеве . Ова функција је посебно корисна када радите са корисничким уносом или читате податке из спољних извора - где се унос обично даје у формату стрингова. Враћа еквивалентан дуг цео број након што прими стринг као улаз. Изузетак типа стд::инвалид_аргумент или стд::оут_оф_ранге се баца ако конверзија није могућа или ако улазни низ садржи знакове који нису део важећег броја.
Синтакса:
Има следећу синтаксу:
лонг стд::стол(цонст стд::стринг& стр, сизе_т* пос = 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; }
Излаз:
Објашњење:
- У овом примеру, од корисника се тражи да унесе вредности низа које ће се конвертовати.
- Апликација ће наставити да прихвата кориснички унос док корисник не унесе 'излаз' користећи вхиле петљу.
- Улазак 'излаз' узрокује да овај програм одштампа опроштајну поруку и прекине петљу.
- Ако не, покушава да користи стд::стол да конвертујете унос у дуг.
- Конвертована вредност се штампа ако је конверзија успешна.
- Хвата изузетке (неважећи аргументи, ван опсега), штампа поруку о грешци и наставља.
- Док чека на унос новог корисника, петља прелази на следећу итерацију.