Share via


atoll, _atoll_l, _wtoll, _wtoll_l

Convertissent une chaîne en un entier long long.

Syntaxe

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

Paramètres

str
Chaîne à convertir.

locale
Paramètres régionaux à utiliser.

Valeur retournée

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

En cas de dépassement de capacité avec de grandes valeurs intégrales positives, atoll retourne LLONG_MAX, et LLONG_MIN dans le cas de dépassement de capacité avec de grandes valeurs intégrales négatives.

Dans tous les cas hors limites, errno est défini sur ERANGE. Si le paramètre passé est NULL, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, ces fonctions définissent errno avec la valeur EINVAL et retournent 0.

Notes

Ces fonctions convertissent une chaîne de caractères en une valeur entière long long.

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

L’argument str de atoll prend la forme suivante :

[whitespace] [sign] [digits]

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

_wtoll est identique à atoll, à ceci près qu’elle prend une chaîne à caractères larges en tant que paramètre.

Les versions de ces fonctions avec le suffixe _l sont identiques aux versions qui en sont dépourvues, à la différence qu’elles utilisent, à la place des paramètres régionaux actuels, les paramètres régionaux qui sont passés. Pour plus d’informations, consultez Locale.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine Tchar.h _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tstoll atoll atoll _wtoll
_tstoll_l _atoll_l _atoll_l _wtoll_l
_ttoll _atoll _atoll _wtoll

Spécifications

Routines En-tête requis
atoll, _atoll_l <stdlib.h>
_wtoll, _wtoll_l <stdlib.h> ou <wchar.h>

Exemple

Ce programme montre comment utiliser les fonctions atoll pour convertir les nombres stockés sous forme de chaînes en valeurs numériques.

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

Voir aussi

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