logo

функція std::stol у C++

У цій статті ви дізнаєтеся про функцію std::stol у C++ з її синтаксисом і прикладами.

Що таке std::stol()?

The Стандартна бібліотека шаблонів (STL) у C++ включає std::stol() функція, яка спеціально створена для конвертації рядки до довгих цілих чисел . Ця функція особливо корисна під час роботи з введеними користувачами або читанням даних із зовнішніх джерел, де вхідні дані зазвичай подаються у форматі рядка. Він повертає еквівалентне довге ціле після отримання рядка як вхідних даних. Виняток типу std::invalid_argument або std::out_of_range створюється, якщо перетворення неможливе або якщо вхідний рядок містить символи, які не є частиною дійсного числа.

Синтаксис:

Він має такий синтаксис:

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

str: Текст, який потрібно змінити на довге ціле число.

Позиція: Індекс першого неперетвореного символу рядка, який зберігається як вказівник на об’єкт size_t. Якщо він не потрібен, для цього додаткового параметра можна встановити значення nullptr.

база: Числова база перетворення. За замовчуванням використовується десять.

gimp як скасувати вибір

Повернене значення: Числове значення, яке було проаналізовано з вхідного рядка, повертається функцією як довге ціле число.

Винятки: Функція створює виняток, якщо перетворення не може бути завершено або якщо символи у вхідному рядку недійсні. Якщо перетворення не вдалося виконати, можливі винятки std::invalid_argument і std::out_of_range якщо перетворене значення перевищує представлений діапазон протягом тривалого часу.

Випадки використання:

    Обробка введених даних користувачами:

std::stol() корисний для перетворення числового введення, отриманого від користувачів у форматі рядка, у числовий тип для подальшої обробки.

    Файл введення/виведення:

Читання числових даних у файлах, які містять рядки як представлення даних.

    Перевірка даних:

Перевірка даних передбачає підтвердження того, що введені користувачем дані точно представляють довгі числа, шляхом їх перевірки та перевірки.

Приклад програми 1:

Розглянемо приклад, щоб проілюструвати використання функція std::stol на 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; } 

Вихід:

функція std::stol у C++

Пояснення:

    Ініціалізація:
    • Викликається рядкова змінна numStr ініціалізується значенням «12345» на початку програми.
    Спробуйте заблокувати:
    • Код переміщується в блок try, сигналізуючи, що він спробує запустити оператори, що містяться в ньому. Тут розглядаються можливі винятки.
    Спроба перетворення:
    • Програма намагається використовувати std::stol() щоб перетворити рядок numStr на довге ціле число всередині блоку try.
    Ефективне перетворення:
    • Результат зберігається в змінній результат, якщо перетворення успішне.
    Вихідне перетворене значення:
    • Успішно перетворене число потім програма виводить на стандартний вивід.
    Лікування винятків:
    • Один із блоків catch обробляє будь-які винятки, які виникають під час перетворення.
    Виняток для виявлення недійсного аргументу:
    • Якщо виняток має тип std::invalid_argument, друкується повідомлення про помилку про те, що аргумент недійсний.
    Виняток для вилову поза діапазоном:
    • Повідомлення про помилку про те, що результат перетворення виходить за межі допустимого діапазону, друкується, якщо виняток має тип std::out_of_range.
    Політика повернення:
    • Програма повертає операційній системі 0, що означає успішне виконання, і основна функція завершується.

Коротше кажучи, код намагається використовувати std::stol() функція всередині блоку try для перетворення рядка '12345' на довге ціле число. Результат друкується, якщо перетворення виконано успішно. Він фіксує винятки та друкує відповідне повідомлення про помилку, якщо воно виникає (або через неправильний аргумент, або через те, що результат виходить за межі діапазону).

Нарешті, програма повертає 0, що означає успішне завершення.

Приклад програми 2:

Давайте візьмемо інший приклад, щоб проілюструвати використання функція std::stol на 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; } 

Вихід:

зразки програм java
функція std::stol у C++

Пояснення:

  • У цьому прикладі користувачеві пропонується ввести рядкові значення, які потрібно перетворити.
  • Програма продовжуватиме приймати дані користувача, доки користувач не введе 'вихід' за допомогою циклу while.
  • Std::cin використовується всередині циклу для читання введених користувачем даних.
  • Вхід 'вихід' змушує цю програму друкувати прощальне повідомлення та завершувати цикл.
  • Якщо ні, він намагається використати std::stol щоб перетворити введення на довгий.
  • Перетворене значення друкується, якщо перетворення виконано успішно.
  • Він виловлює винятки (недійсні аргументи, поза діапазоном), друкує повідомлення про помилку та продовжує роботу.
  • Очікуючи нового введення користувача, цикл переходить до наступної ітерації.