Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Convertissent une chaîne en valeur unsigned __int64.
Syntaxe
unsigned __int64 _strtoui64(
const char *strSource,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Paramètres
strSource
Chaîne se terminant par un caractère Null à convertir.
endptr
Pointeur désignant le caractère qui arrête l’analyse.
base
Base numérique à utiliser.
locale
Paramètres régionaux à utiliser.
Valeur retournée
La fonction _strtoui64 retourne la valeur représentée dans la chaîne strSource, sauf dans le cas où la représentation entraînerait un dépassement de capacité positif, auquel cas elle retourne _UI64_MAX. _strtoui64 retourne 0 si aucune conversion ne peut être effectuée.
_UI64_MAX est défini dans LIMITS.H.
Si strSource a la valeur NULL ou que base est différent de zéro et inférieur à 2 ou supérieur à 36, errno prend la valeur EINVAL.
Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno
Notes
La fonction _strtoui64 convertit strSource en unsigned __int64. _wcstoui64 est une version à caractères larges de _strtoui64 ; son argument strSource est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique.
Les deux fonctions arrêtent de lire la chaîne strSource au premier caractère qu’elles ne peuvent pas reconnaître dans le cadre d’un nombre. Il peut s’agir du caractère null de fin, ou il peut s’agir du premier caractère numérique supérieur ou égal à base.
Par défaut, l’état global de cette fonction est limité à l’application. Pour le modifier, consultez l’état global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
|---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wcstoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wcstoui64_l |
Le paramètre de catégorie des LC_NUMERIC paramètres régionaux actuels détermine la reconnaissance du caractère radix dans strSource; pour plus d’informations, consultez setlocale. Les fonctions sans suffixe _l utilisent les paramètres régionaux actifs ; _strtoui64_l et _wcstoui64_l sont identiques aux fonctions correspondantes sans suffixe _l, sauf qu’elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.
Si endptr ce n’est pas NULLle cas, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement vers lequel pointe endptr. Si aucune conversion ne peut être effectuée (aucun chiffre valide n’a été trouvé ou la base spécifiée n’est pas valide), la valeur de strSource est stockée à l’emplacement désigné par endptr.
_strtoui64 s’attend à ce que strSource pointe vers une chaîne au format suivant :
[
whitespace] [{+|-}] [0[{x|X}]] [] []digits|letters
Un whitespace espace et des tabulations peuvent être ignorés. digits sont un ou plusieurs chiffres décimaux. letters sont une ou plusieurs des lettres 'a' à 'z' (ou 'A' à 'Z'). Le premier caractère qui ne correspond pas à ce formulaire arrête l’analyse. Si base la valeur est comprise entre 2 et 36, elle est utilisée comme base du nombre. Si base a la valeur 0, les premiers caractères de la chaîne désignée par strSource servent à déterminer la base. Si le premier caractère est « 0 » et que le deuxième caractère n’est pas « x » ou « X », la chaîne est interprétée comme un entier octal. Si le premier caractère est « 0 » et que le deuxième est « x » ou « X », la chaîne est interprétée comme étant un entier hexadécimal. Si le premier caractère est un chiffre compris entre « 1 » et « 9 », la chaîne est interprétée comme étant un entier décimal. Les lettres de « a » à « z » (ou de « A » à « Z ») se voient affecter des valeurs comprises entre 10 et 35 ; seules sont autorisées les lettres dont les valeurs affectées sont inférieures à base. Le premier caractère situé en dehors de la plage de la base a pour effet d’arrêter l’analyse. Par exemple, si base est égal à 0 et que le premier caractère analysé est « 0 », il est supposé qu’il s’agit d’un entier octal et un caractère « 8 » ou « 9 » a pour effet de stopper l’analyse.
Spécifications
| Fonction | En-tête requis |
|---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> ou <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_strtoui64.c
#include <stdio.h>
unsigned __int64 atoui64(const char *szUnsignedInt) {
return _strtoui64(szUnsignedInt, NULL, 10);
}
int main() {
unsigned __int64 u = atoui64("18446744073709551615");
printf( "u = %I64u\n", u );
}
u = 18446744073709551615
Voir aussi
Conversion de données
Paramètres régionaux
localeconv
setlocale, _wsetlocale
Chaîne à fonctions de valeur numérique
strtod, , _strtod_lwcstod, ,_wcstod_l
strtoul, , _strtoul_lwcstoul, ,_wcstoul_l
atof, , _atof_l_wtof, ,_wtof_l