Прототип функции 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