Share via


_atoi64, _atoi64_l, _wtoi64, _wtoi64_l

Convertissent une chaîne en un entier 64 bits.

Syntaxe

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

Paramètres

str
Chaîne à convertir.

locale
Paramètres régionaux à utiliser.

Valeur retournée

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

Si les fonctions dépassent de grandes valeurs intégrales positives, elles retournent I64_MAX. Les fonctions retournent I64_MIN si elles dépassent les valeurs intégrales négatives importantes.

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 64 bits.

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') terminant la chaîne.

L’argument str de _atoi64 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.

_wtoi64 est identique à _atoi64, à 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, 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.

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
_tstoi64 _atoi64 _atoi64 _wtoi64
_ttoi64 _atoi64 _atoi64 _wtoi64

Spécifications

Routines En-tête requis
_atoi64, _atoi64_l <stdlib.h>
_wtoi64, _wtoi64_l <stdlib.h> ou <wchar.h>

Exemple

Ce programme montre comment les nombres stockés sous forme de chaînes peuvent être convertis en valeurs numériques à l’aide des fonctions _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.

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