_strtoui64
, _wcstoui64
, _strtoui64_l
, _wcstoui64_l
Przekonwertuj unsigned __int64
ciąg na wartość.
Składnia
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
);
Parametry
strSource
Ciąg zakończony wartością null do konwersji.
endptr
Wskaźnik do znaku, który zatrzymuje skanowanie.
base
Podstawa liczbowa do użycia.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
_strtoui64
Zwraca wartość reprezentowaną w ciągu strSource
, z wyjątkiem sytuacji, gdy reprezentacja spowoduje przepełnienie, w tym przypadku zwraca wartość _UI64_MAX
. _strtoui64
Zwraca wartość 0, jeśli nie można wykonać konwersji.
_UI64_MAX
parametr jest zdefiniowany w pliku LIMITS.H
.
Jeśli strSource
wartość jest NULL
lub base
jest niezerowa, a wartość jest mniejsza niż 2 lub większa niż 36, errno
jest ustawiona na EINVAL
wartość .
Aby uzyskać więcej informacji na temat kodów powrotnych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Funkcja _strtoui64
jest konwertowana strSource
na element unsigned __int64
. _wcstoui64
jest wersją szerokoznakową ; _strtoui64
jego strSource
argument jest ciągiem o szerokim znaku. W przeciwnym razie te funkcje zachowują się identycznie.
Obie funkcje przestają odczytywać ciąg strSource
przy pierwszym znaku, którego nie mogą rozpoznać jako części liczby. Może to być znak zerowy zakończenia lub może być pierwszym znakiem liczbowym większym lub równym base
.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby go zmienić, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
TCHAR.H Rutynowych |
_UNICODE i _MBCS niezdefiniowane |
_MBCS Zdefiniowane |
_UNICODE Zdefiniowane |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wcstoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wcstoui64_l |
Ustawienie kategorii bieżących ustawień regionalnych określa rozpoznawanie LC_NUMERIC
znaku promieniowego w systemie strSource
; aby uzyskać więcej informacji, zobacz setlocale
. Funkcje bez sufiksu _l
używają bieżących ustawień regionalnych i _strtoui64_l
_wcstoui64_l
są identyczne z odpowiednimi funkcjami bez sufiksu _l
, z tą różnicą, że używają ustawień regionalnych przekazanych w zamian. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Jeśli endptr
tak nie NULL
jest , wskaźnik do znaku, który zatrzymał skanowanie, jest przechowywany w lokalizacji wskazywanej przez endptr
. Jeśli nie można wykonać konwersji (nie znaleziono prawidłowych cyfr lub określono nieprawidłową bazę), wartość strSource
jest przechowywana w lokalizacji wskazywanej przez endptr
.
_strtoui64
strSource
oczekuje wskazywania ciągu następującego formularza:
[
whitespace
] [{+
|-
}] [0
[{x
|X
}]] [digits
|letters
]
Element whitespace
może składać się z spacji i znaków tabulacji, które są ignorowane. digits
to co najmniej jedna cyfra dziesiętna. letters
są co najmniej jedną literą "a" przez "z" (lub "A" do "Z"). Pierwszy znak, który nie pasuje do tego formularza, zatrzymuje skanowanie. Jeśli base
wartość wynosi od 2 do 36, jest używana jako podstawa liczby. Jeśli base
wartość to 0, początkowe znaki ciągu wskazywane przez strSource
są używane do określania podstawy. Jeśli pierwszy znak to "0", a drugi znak nie jest "x" ani "X", ciąg jest interpretowany jako liczba całkowita ósemkowa. Jeśli pierwszy znak to "0", a drugi znak to "x" lub "X", ciąg jest interpretowany jako liczba całkowita szesnastkowa. Jeśli pierwszy znak to od "1" do "9", ciąg jest interpretowany jako liczba całkowita dziesiętna. Litery "a" do "z" (lub "A" do "Z") są przypisane wartości od 10 do 35; tylko litery, których przypisane wartości są mniejsze niż base
dozwolone. Pierwszy znak poza zakresem podstawy zatrzymuje skanowanie. Na przykład jeśli base
wartość to 0, a pierwszy przeskanowany znak to "0", zakłada się, że liczba całkowita ósemkowa, a znak "8" lub "9" zatrzyma skanowanie.
Wymagania
Function | Wymagany nagłówek |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> lub <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Konwersja danych
ustawienia regionalne
localeconv
setlocale
, _wsetlocale
Funkcje ciąg-wartość liczbowa
strtod
, _strtod_l
, wcstod
, _wcstod_l
strtoul
, _strtoul_l
, wcstoul
, _wcstoul_l
atof
, _atof_l
, _wtof
, _wtof_l
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla