atol, _atol_l, _wtol, _wtol_l

 

Publicado: julio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convertir una cadena en un entero largo.

long atol(  
   const char *str   
);  
long _atol_l(  
   const char *str,  
   _locale_t locale  
);  
long _wtol(  
   const wchar_t *str   
);  
long _wtol_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.

Cada función devuelve el long valor generado mediante la interpretación de los caracteres de entrada como un número. El valor devuelto es 0L para atol si la entrada no se puede convertir en un valor de ese tipo.

En el caso de desbordamiento con grandes valores enteros positivos, atol devuelve LONG_MAX; en el caso de desbordamiento con enteros valores negativos grandes, LONG_MIN se devuelve. En todos los casos de fuera de intervalo, errno está establecido en ERANGE. Si el parámetro pasado es NULL, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones establecen errno a EINVAL y devuelven 0.

Estas funciones convierten una cadena de caracteres en un valor entero largo (atol).

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 se reconoce como parte de un número. Este carácter puede ser el NULL caracteres ('\0' o L '\0') terminando la cadena.

El str argumento atol tiene la forma siguiente:

[whitespace] [sign] [digits]]

Un whitespace consta de caracteres de espacio o tabulación, que se omiten; sign sea más (+) o menos (-); y digits son uno o más dígitos.

_wtoles idéntico a atol excepto en que toma una cadena de caracteres anchos.

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.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tstolatolatol_wtol
_ttolatolatol_wtol
RutinasEncabezado necesario
atol<stdlib.h>
_atol_l, _wtol, _wtol_l<stdlib.h>y<wchar.h></wchar.h></stdlib.h>

Este programa muestra cómo se pueden convertir números almacenados como cadenas en valores numéricos utilizando la atol (función).

// crt_atol.c  
// This program shows how numbers stored as  
// strings can be converted to numeric values  
// using the atol functions.  
#include <stdlib.h>  
#include <stdio.h>  
#include <errno.h>  
  
int main( void )  
{  
    char    *str = NULL;  
    long    value = 0;  
  
    // An example of the atol function  
    // with leading and trailing white spaces.  
    str = "  -2309 ";  
    value = atol( str );  
    printf( "Function: atol( \"%s\" ) = %d\n", str, value );  
  
    // Another example of the atol function   
    // with an arbitrary decimal point.  
    str = "314127.64";  
    value = atol( str );  
    printf( "Function: atol( \"%s\" ) = %d\n", str, value );  
  
    // Another example of the atol function  
    // with an overflow condition occurring.  
    str = "3336402735171707160320";  
    value = atol( str );  
    printf( "Function: atol( \"%s\" ) = %d\n", str, value );  
    if (errno == ERANGE)  
    {  
       printf("Overflow condition occurred.\n");  
    }  
}  

Function: atol( "  -2309 " ) = -2309  
Function: atol( "314127.64" ) = 314127  
Function: atol( "3336402735171707160320" ) = 2147483647  
Overflow condition occurred.  

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

Mostrar: