_atoi64, _atoi64_l, _wtoi64, _wtoi64_l
Konwertuje ciąg na liczba całkowita 64-bitowa.
__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
);
Parametry
str
Ciąg do konwersji.locale
Ustawienia regionalne, aby użyć.
Wartość zwracana
Każda funkcja zwraca __int64 wartość wyprodukowanych przez zinterpretowanie wprowadzanie znaków jako liczba.Zwracana jest wartość 0 dla _atoi64 , jeśli dane wejściowe nie można przekonwertować wartości tego typu.
W odniesieniu do przepełnienia o dużej wartości dodatnie integralną _atoi64 zwraca I64_MAX i I64_MIN z przepełnienie o dużych wartościach ujemnych integralną.
We wszystkich przypadkach spoza zakresu errno jest ustawiona na ERANGE.Jeśli parametr przekazywany w NULL, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ustaw te funkcje errno do EINVAL i zwraca wartość 0.
Uwagi
Te funkcje przekonwertować ciąg znaków do wartości 64-bitową liczbą całkowitą.
Ciąg wejściowy jest sekwencja znaków, które mogą być interpretowane jako wartości liczbowe określonego typu.Funkcja Zatrzymuje czytanie ciąg wejściowy od pierwszego znaku, który nie jest rozpoznawana jako część numeru.Znak ten może być znakiem null ('\0' lub L '\0') kończące ciąg.
str Argument _atoi64 ma następującą postać:
[whitespace] [sign] [digits]]
A whitespace składa się ze znaków spacja lub tabulator, które są ignorowane; signjest albo plus (+) lub minus (-); i digits są co najmniej jedną cyfrę.
_wtoi64jest taka sama, jak _atoi64 z wyjątkiem, że trwa ciąg szerokich znaków jako parametr.
Wersje te funkcje, z _l sufiks są identyczne, z wyjątkiem, że używają oni przekazany zamiast bieżące ustawienia regionalne parametr ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.
Tekst rodzajowy rutynowych mapowania
Procedura TCHAR.h |
_UNICODE i _MBCS nie zdefiniowane |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tstoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
_ttoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
Wymagania
Procedur |
Wymaganego nagłówka |
---|---|
_atoi64, _atoi64_l |
<stdlib.h> |
_wtoi64, _wtoi64_l |
<stdlib.h> lub <wchar.h> |
Przykład
Program ten pokazuje, jak liczby przechowywane jako ciągi mogą być konwertowane na wartości liczbowe za pomocą _atoi64 funkcji.
// 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");
}
}