_atoi64
, _atoi64_l
, , _wtoi64
, _wtoi64_l
Convierte una cadena en un entero de 64 bits.
Sintaxis
__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
);
Parámetros
str
Cadena que se va a convertir.
locale
Configuración regional que se va a usar.
Valor devuelto
Cada función devuelve el valor __int64
que se genera al interpretar los caracteres de entrada como un número. El valor devuelto es 0 para _atoi64
si la entrada no se puede convertir en un valor de ese tipo.
Si las funciones se desbordan con valores enteros positivos grandes, devuelven I64_MAX
. Las funciones devuelven I64_MIN
si se desbordan con valores enteros negativos grandes.
En todos los casos de valores fuera del intervalo, errno
se establece en ERANGE
. Si el parámetro pasado en es NULL
, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones establecen errno
en EINVAL
y devuelven 0.
Comentarios
Estas funciones convierten una cadena de caracteres en un valor entero de 64 bits.
La cadena de entrada es una secuencia de caracteres que se puede interpretar como un valor numérico del tipo especificado. La función deja de leer la cadena de entrada en el primer carácter que no puede reconocer como parte de un número. Es posible que este carácter sea el carácter nulo ("\0" o L"\0") que termina la cadena.
El argumento str
para _atoi64
tiene el formato siguiente:
[] [
whitespace
sign
] [digits
]
Un elemento whitespace
consta de caracteres de espacio o tabulación, que se omiten; sign
es más (+) o menos (-) y digits
son uno o más dígitos.
_wtoi64
es idéntica a _atoi64
, salvo en que toma una cadena de caracteres anchos como parámetro.
Las versiones de estas funciones con el sufijo _l
son idénticas salvo que usan el parámetro locale pasado en lugar de la configuración regional actual. Para obtener más información, vea Locale.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tstoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
_ttoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
Requisitos
Rutinas | Encabezado necesario |
---|---|
_atoi64 , _atoi64_l |
<stdlib.h> |
_wtoi64 , _wtoi64_l |
<stdlib.h> o <wchar.h> |
Ejemplo
Este programa muestra cómo se pueden convertir números almacenados como cadenas en valores numéricos con las funciones _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.
Consulte también
Conversión de datos
Compatibilidad con cálculos matemáticos y el punto flotante
Configuración regional
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, _atodbl_l
, _atoldbl
, _atoldbl_l
, , _atoflt
, _atoflt_l