CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
atof-atol
ATOF-ATOL
#include <match.h> Использует либо <match.h>,
#include <stdlib.h> либо <stdlib.h>.
double atof (string); преобразует строку string в
double
char *string строка, подлежащая преобра-
зованию
int atoi (string) преобразует строку string в
int
long atol (string) преобразует строку string в
long
char *string строка, подлежащая преобра-
зованию
Описание.
Эти функции преобразуют символьную строку в значение с пла-
вающей точкой двойной точности (atof), в целое значение (atoi)
или в длинное целое значение (atol).
Исходная строка string представляет собой последователь-
ность символов, которые могут быть интерпретированы как числовое
значение определенного типа.
Функция прекращает чтение исходной строки как только поя-
вится первый символ, который не может быть воспринят как часть
числа (им может быть NULL-символ, завершающий строку).
Функция atof предполагает, что строка string имеет следую-
щую форму:
[whitespace][sign][digits][{d|D|E}[sign]digits] ,
где [whitespase] состоит из пробелов и/или знаков табуляции,
которые игнорируются; [sign] означает "+" или "-"; [digits] -
- одна или несколько десятичных цифр. Если перед десятичной точ-
кой нет цифр, то хотя бы одна цифра должна стоять после нее. Де-
сятичные цифры могут следовать за показателем степени, который
состоит из буквы (d,D,e или E) и десятичного целого со знаком.
Функции atoi и atol не обрабатывают десятичные точки или
показатели степени. Аргумент string для этих функций имеет вид:
[whitespace][sign]digits ,
где whitespace, sign, digits обозначают то же, что и для atof.
Возвращаемое значение.
Каждая из функций возвращает значение типа double, int или
long, получаемое в результате интерпретации входных символов как
чисел.
Возвращаемое значение равно 0 (0L для atol), если вход не
может быть преобразован в значение данного типа. Возвращаемое
значение не определено в случае переполнения.
См. также ecvt, fcvt, gcvt.
Пример:
Следующие примеры показывают, как числа, записанные в виде
строк, могут быть преобразованы в числовые значения при использо-
вании функций atof, atoi, atol:
#include <math.h>
extern long atol (\ );
main (\ )
{
char *s;
double x;
int i;
long l;
s=" -2309.12E-15";
x=atof(s);
printf("%e\t",x);
s="7.8912654773d210";
x=atof(s);
printf("%e\t",x);
s="-9885";
i=atoi(s);
printf("%d\t",i);
s="98854 dollars";
l=atol(s);
printf("%ld\n",l);
}
Оставить комментарий
Комментарии
1.


4 июня 2005, 22:40:13
And who to you has told, what the type "String" works " well with lines "? Try char* s1, char * s2, and all will be ок.
2.


7 октября 2004, 00:37:07
У меня почему-то не работает вот это:
.......
int main()
{
string s1;
string s2;
cout<< "enter 1 number"<<endl;
cin >> s1;
cout<< "enter 2 number"<<endl;
cin>> s2;
int i = atoi(s2);//ЗДЕСЬ ОШИБКА! пробовал и s2.c_str
............
return 0;
}
Как же так?
.......
int main()
{
string s1;
string s2;
cout<< "enter 1 number"<<endl;
cin >> s1;
cout<< "enter 2 number"<<endl;
cin>> s2;
int i = atoi(s2);//ЗДЕСЬ ОШИБКА! пробовал и s2.c_str
............
return 0;
}
Как же так?
