Прототип функции 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; }
Пример работы программы
Синус угла 90 градусов = 1