_atoi64
, , _atoi64_l
_wtoi64
_wtoi64_l
Преобразует строку в 64-разрядное целое число.
Синтаксис
__int64 _atoi64(
const char *str
);
__int64 _wtoi64(
const wchar_t *str
);
__int64 _atoi64_l(
const char *str,
_locale_t locale
);
__int64 _wtoi64_l(
const wchar_t *str,
_locale_t locale
);
Параметры
str
Строка для преобразования.
locale
Используемый языковой стандарт.
Возвращаемое значение
Каждая функция возвращает значение __int64
, которое создается за счет интерпретации входных символов как числа. Возвращаемое значение равно 0, _atoi64
если входные данные не могут быть преобразованы в значение этого типа.
Если функции переполнены большими положительными целочисленными значениями, они возвращаются I64_MAX
. Функции возвращаются I64_MIN
, если они переполнены большими отрицательными целыми значениями.
Во всех случаях, когда диапазон не соблюдается, errno
принимает значение ERANGE
. Если параметр передан NULL
, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno
значение EINVAL
и возвращают 0.
Замечания
Эти функции преобразуют символьную строку в 64-разрядное целое значение.
Входная строка представляет собой последовательность символов, которые могут обрабатываться как числовое значение указанного типа. Функция перестает считывать входную строку на первом символе, который не может распознаваться как часть числа. Этот символ может быть нуль-символом ("\0" или L"\0"), которым завершается строка.
Аргумент str
для _atoi64
принимает следующую форму:
[] [
whitespace
] [sign
] [digits
]
A whitespace
состоит из пробелов или символов табуляции, которые игнорируются; sign
либо плюс (+) или минус (-); и digits
являются одним или несколькими цифрами.
Функция _wtoi64
идентична функции _atoi64
за тем исключением, что принимает в качестве параметра строку расширенных символов.
Версии этих функций с суффиксом _l
идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tstoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
_ttoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
Требования
Подпрограммы | Обязательный заголовок |
---|---|
_atoi64 , _atoi64_l |
<stdlib.h> |
_wtoi64 , _wtoi64_l |
<stdlib.h> или <wchar.h> |
Пример
Эта программа показывает, как числа, хранящиеся в виде строки, можно преобразовать в числовые значения с помощью функции _atoi64
.
// crt_atoi64.c
// This program shows how numbers stored as
// strings can be converted to numeric values
// using the _atoi64 functions.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char *str = NULL;
__int64 value = 0;
// An example of the _atoi64 function
// with leading and trailing white spaces.
str = " -2309 ";
value = _atoi64( str );
printf( "Function: _atoi64( \"%s\" ) = %d\n", str, value );
// Another example of the _atoi64 function
// with an arbitrary decimal point.
str = "314127.64";
value = _atoi64( str );
printf( "Function: _atoi64( \"%s\" ) = %d\n", str, value );
// Another example of the _atoi64 function
// with an overflow condition occurring.
str = "3336402735171707160320";
value = _atoi64( str );
printf( "Function: _atoi64( \"%s\" ) = %d\n", str, value );
if (errno == ERANGE)
{
printf("Overflow condition occurred.\n");
}
}
Function: _atoi64( " -2309 " ) = -2309
Function: _atoi64( "314127.64" ) = 314127
Function: _atoi64( "3336402735171707160320" ) = -1
Overflow condition occurred.
См. также
Преобразование данных
Поддержка математических и плавающих точек
Локаль
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, , _atodbl_l
_atoldbl_l
_atoldbl
_atoflt
,_atoflt_l