Функция atof

Прототип функции atof:

double atof( const char * string );

Заголовочный файл:

Название Язык
stdlib.h С
cstdlib С++

Описание

Функция atof преобразует строку в значение типа double. Функция сначала отбрасывает пробелы по мере необходимости, до тех пор, пока не будет найден первый символ, отличный от символа пробела. Затем, начиная с этого символа, atof берет столько символов, сколько возможно. То есть, пока литерал в строке напоминает синтаксис чисел с плавающей точкой, функция его считывает и интерпретирует в числовое значение. Остальная часть строки, после последнего допустимого символа игнорируется и никак не влияет на поведение этой функции.

Допустимое число с плавающей точкой формируется функцией atof из следующих символов:

  • Знаки плюс и минус;
  • Последовательность цифр, которые могут содержать десятичную точку;
  • Число записанное в экспоненциальной форме, такая форма может содержать символы e или E за которыми следуют знаки, плюс или минус, и последовательность цифр.

Если первая последовательность не пробельных символов в строке string не формируют правильное число с плавающей точкой, или строка string содержит только пробельные символы, то преобразование строки в число не выполняется.

Параметры:

  • string
    Си-строка для преобразования в число с плавающей точкой.

Возвращаемое значение

В случае успеха, функция возвращает преобразованное число с плавающей точкой типа double.
Если функции не удалось преобразовать строку в число, возвращаемое значение — ноль (0,0).
Существует не стандартная ситуация, когда преобразованное значение будет выходить за диапазон принимаемых значений. Более надежной кросс-платформенной альтернативой будет являться функция strtod.

Пример: исходный код программы

//пример использования функции atof
#include <iostream>
#include <cstdlib>
#include <cmath>

int main()
{
  double pi = 3.1415926535;                  // число ПИ
  char input [256];
  std::cout << "Введите угол в градусах: ";
  std::cin >> input ;

  double agl = atof( input );                // преобразуем строку к типу данных float

  std::cout << "Синус угла "
            << agl << " градусов = "
            <<  sin(agl * pi / 180) << "n"; // вычисляем синус угла, переведённого в радианы
  return 0;
}

Пример работы программы

CppStudio.com
Введите угол в градусах: 90
Синус угла 90 градусов = 1
Автор: admin
Дата: 02.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.