_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l
Convertire una stringa in un valore senza segno __int64.
unsigned __int64 _strtoui64(
const char *nptr,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Parametri
nptr
Stringa con terminazione null da convertire.endptr
Puntatore al carattere che arresta la scansione.base
Base numerica da utilizzare.locale
Impostazioni locali da utilizzare.
Valore restituito
_strtoui64restituisce il valore rappresentato nella stringa nptr, tranne quando la rappresentazione può provocare un overflow, in tal caso restituisce _UI64_MAX. strtoui64restituisce 0 se non può essere eseguita alcuna conversione.
_UI64_MAX è definito in. LIMITS.H.
Se nptr è NULL o base è diverso da zero e inferiore a 2 o maggiore di 36, errno è impostato su EINVAL.
Vedere _doserrno, errno, _sys_errlist, e _sys_nerr per ulteriori informazioni su questi, e altri, codici restituiti.
Note
La funzione _strtoui64converte nptr in un unsigned __int64. _wcstoui64 è una versione a caratteri estesi di _strtoui64; l'argomento nptr è una stringa di caratteri estesi. In caso contrario queste funzioni si comportano in modo identico.
Entrambe le funzioni arrestano la lettura della stringa nptr al primo carattere che non riconoscono come parte di un numero. Questo può essere dovuto ad un carattere di terminazione null, oppure al primo carattere numerico maggiore o uguale a base.
Mapping di routine su testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wstrtoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wstrtoui64_l |
L'impostazione locale corrente di categoria LC_NUMERIC determina il riconoscimento del carattere radice in nptr per ulteriori informazioni, vedere setlocale. Le funzioni senza il suffisso _l utilizzano le impostazioni locali correnti; _strtoui64_l e_wcstoui64_l sono identiche alle corrispondenti funzioni senza il suffisso _l con la differenza che utilizzano le impostazioni locali che gli sono state passate. Per ulteriori informazioni, vedere Impostazioni locali.
Se endptr non è NULL, il puntatore al carattere che arresta la scansione viene memorizzato nella locazione di memoria indicata da endptr. Se nessuna conversione può essere eseguita (nessuna cifra valida è stata trovata o è stata specificata una base non valida), il valore di nptr viene archiviato all'indirizzo puntato da endptr.
_strtoui64 richiede che nptr punti ad una stringa nel seguente formato:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
Un whitespace può essere costituito da caratteri di spazio e tabulazione, che vengono ignorati; digits sono una o più cifre decimali. Il primo carattere non idoneo arresta la scansione. Se base è compreso tra 2 e 36, allora viene utilizzato come base del numero. Se base è 0, i caratteri iniziali della stringa puntata da nptr vengono utilizzati per determinare la base. Se il primo carattere è 0 e il secondo carattere non è 'x' o 'X', la stringa viene interpretata come Integer ottale. Se il primo carattere è '0' e il secondo carattere è 'x' o 'X', la stringa viene interpretata come Integer esadecimale. Se il primo carattere è '1' e '9', la stringa viene interpretata come Integer decimale. Alle lettere da 'a' a 'z' (o da 'A' a 'Z') sono assegnati i valori da 10 a 35; solo lettere con valori assegnati minori della base sono permesse. Il primo carattere non compreso nell'intervallo di base arresta la scansione. Ad esempio, se base è 0 e il primo carattere analizzato è "0", si presuppone un numero intero ottale e il carattere "8" o "9" arresterà l'analisi.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> o <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Esempio
// 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 );
}
Vedere anche
Riferimenti
Funzioni da stringa a valore numerico
strtod, _strtod_l, wcstod, _wcstod_l