Compartir a través de


atoll, _atoll_l, _wtoll, _wtoll_l

Convierte una cadena en un entero long long.

Sintaxis

long long atoll(
   const char *str
);
long long _wtoll(
   const wchar_t *str
);
long long _atoll_l(
   const char *str,
   _locale_t locale
);
long long _wtoll_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 long long que se genera al interpretar los caracteres de entrada como un número. El valor devuelto de atoll es 0 si la entrada no se puede convertir en un valor de ese tipo.

En caso de desbordamiento con valores enteros positivos grandes, atoll devuelve LLONG_MAX; en caso de desbordamiento con valores enteros negativos grandes, devuelve LLONG_MIN.

En todos los casos de valores fuera del intervalo, errno se establece en ERANGE. Si el parámetro que se pasa es NULL, se invoca al 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 long long.

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 finaliza la cadena.

El argumento str para atoll 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.

_wtoll es idéntica a atoll, salvo en que toma una cadena de caracteres anchos como parámetro.

Las versiones de estas funciones que tienen el sufijo _l son idénticas a las versiones que no lo tienen, salvo en que usan el parámetro de configuración regional que se pasa 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
_tstoll atoll atoll _wtoll
_tstoll_l _atoll_l _atoll_l _wtoll_l
_ttoll _atoll _atoll _wtoll

Requisitos

Rutinas Encabezado necesario
atoll, _atoll_l <stdlib.h>
_wtoll, _wtoll_l <stdlib.h> o <wchar.h>

Ejemplo

Este programa muestra cómo se pueden usar las funciones atoll para convertir números almacenados como cadenas en valores numéricos.

// crt_atoll.c
// Build with: cl /W4 /Tc crt_atoll.c
// This program shows how to use the atoll
// functions to convert numbers stored as
// strings to numeric values.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

int main(void)
{
    char *str = NULL;
    long long value = 0;

    // An example of the atoll function
    // with leading and trailing white spaces.
    str = "  -27182818284 ";
    value = atoll(str);
    printf("Function: atoll(\"%s\") = %lld\n", str, value);

    // Another example of the atoll function
    // with an arbitrary decimal point.
    str = "314127.64";
    value = atoll(str);
    printf("Function: atoll(\"%s\") = %lld\n", str, value);

    // Another example of the atoll function
    // with an overflow condition occurring.
    str = "3336402735171707160320";
    value = atoll(str);
    printf("Function: atoll(\"%s\") = %lld\n", str, value);
    if (errno == ERANGE)
    {
       printf("Overflow condition occurred.\n");
    }
}
Function: atoll("  -27182818284 ") = -27182818284
Function: atoll("314127.64") = 314127
Function: atoll("3336402735171707160320") = 9223372036854775807
Overflow condition occurred.

Consulte también

Conversión de datos
Compatibilidad con matemáticas y punto flotante
Configuración regional
_ecvt
_fcvt
_gcvt
setlocale, _wsetlocale
_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l