РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
744 of 815 menu

Функция stof

Функция stof преобразует строку в число с плавающей точкой типа float. В первый параметр мы передаём строку, которую необходимо преобразовать, во второй необязательный параметр можно передать указатель на переменную типа size_t, в которую будет записан индекс первого символа, следующего за числом. Если преобразование невозможно, функция выбрасывает исключение std::invalid_argument, а если число выходит за пределы допустимого диапазона типа float - исключение std::out_of_range.

Функция объявлена в заголовочном файле <string> в пространстве имён std.

Синтаксис

float stof(const string& str, size_t* pos = 0);

Пример

Давайте преобразуем строку "123.45" в число типа float:

#include <iostream> #include <string> using namespace std; int main() { string str = "123.45"; float res = stof(str); cout << res << endl; return 0; }

Результат выполнения кода:

123.45

Пример

Давайте передадим второй параметр, чтобы узнать позицию первого символа после числа:

#include <iostream> #include <string> using namespace std; int main() { string str = "123.45abcde"; size_t pos; float res = stof(str, &pos); cout << res << endl; cout << pos << endl; return 0; }

Результат выполнения кода:

123.45 6

Пример

Давайте посмотрим, что произойдёт, если строка не содержит числа:

#include <iostream> #include <string> using namespace std; int main() { try { float res = stof("abcde"); cout << res << endl; } catch (const invalid_argument& e) { cout << "invalid_argument" << endl; } return 0; }

Результат выполнения кода:

"invalid_argument"

Смотрите также

  • функция stod,
    которая преобразует строку в число типа double
  • функция stold,
    которая преобразует строку в число типа long double
  • функция stoi,
    которая преобразует строку в целое число
  • функция to_string,
    которая преобразует число в строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить