atol, _atol_l, _wtol, _wtol_l

 

Date de publication : août 2016

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Convertir une chaîne en un entier long.

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  
);  

Paramètres

str
Chaîne à convertir.

locale
Paramètres régionaux à utiliser.

Chaque fonction retourne le long valeur produite en interprétant les caractères d’entrée en tant que nombre. La valeur de retour est 0L pour atol si l’entrée ne peut pas être convertie en valeur de ce type.

En cas de dépassement de capacité avec grandes valeurs intégrales positifs, atol retourne LONG_MAX; dans le cas de dépassement de capacité avec grandes valeurs intégrales négatifs, LONG_MIN est retourné. Dans tous les cas hors limites, errno est défini sur ERANGE. Si le paramètre transmis est NULL, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l’exécution est autorisée à se poursuivre, ces fonctions définissent errno à EINVAL et retourne 0.

Ces fonctions convertissent une chaîne de caractères en une valeur d’entier long (atol).

La chaîne d’entrée est une séquence de caractères qui peut être interprété comme une valeur numérique du type spécifié. La fonction arrête la lecture de la chaîne d’entrée au premier caractère qu’il ne peut pas reconnaître comme faisant partie d’un nombre. Ce caractère peut être le NULL caractères ('\0' ou L '\0') termine la chaîne.

Le str argument atol a la forme suivante :

[whitespace] [sign] [digits]]

Un whitespace se compose de caractères espace ou tabulation, qui sont ignorés ; sign est un signe plus (+) ou moins (-) ; et digits sont un ou plusieurs chiffres.

_wtolest identique à atol , sauf qu’il prend une chaîne de caractères larges.

Les versions de ces fonctions avec le suffixe _l sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux actuels. Pour plus d’informations, consultez Locale.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tstolatolatol_wtol
_ttolatolatol_wtol
RoutinesEn-tête requis
atol<stdlib.h>
_atol_l, _wtol, _wtol_l<stdlib.h>et<wchar.h></wchar.h></stdlib.h>

Ce programme montre comment les nombres stockés sous forme de chaînes peuvent être converties en valeurs numériques à l’aide de la atol (fonction).

// 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.  

Conversion de données
Prise en charge de virgule flottante
Paramètres régionaux
_ecvt
_fcvt
_gcvt
SetLocale, _wsetlocale
_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l

Afficher: