_atoi64
, _atoi64_l
, , _wtoi64
_wtoi64_l
Převede řetězec na 64bitové celé číslo.
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
);
Parametry
str
Řetězec, který se má převést.
locale
Národní prostředí, které se má použít.
Vrácená hodnota
Každá funkce vrátí hodnotu vytvořenou __int64
interpretací vstupních znaků jako čísla. Vrácená hodnota je 0, _atoi64
pokud nelze vstup převést na hodnotu tohoto typu.
Pokud funkce přetékají velkými kladnými celočíselnými hodnotami, vrátí I64_MAX
. Funkce se vrátí I64_MIN
, pokud přetékají velkými zápornými celočíselnými hodnotami.
Ve všech případech errno
mimo rozsah je nastavena hodnota ERANGE
. Pokud je NULL
parametr předán , je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, tyto funkce jsou nastavené errno
na EINVAL
hodnotu 0 a vrátí hodnotu 0.
Poznámky
Tyto funkce převedou řetězec znaků na 64bitovou celočíselnou hodnotu.
Vstupní řetězec je posloupnost znaků, kterou lze interpretovat jako číselnou hodnotu zadaného typu. Funkce přestane číst vstupní řetězec na prvním znaku, který nedokáže rozpoznat jako součást čísla. Tento znak může být znak null (\0 nebo L'\0'), který ukončuje řetězec.
Argument str
, který má _atoi64
následující tvar:
[] [
whitespace
] [digits
sign
]
Jedná whitespace
se o mezeru nebo znaky tabulátoru, které se ignorují; sign
jsou buď plus (+) nebo minus (-), a digits
jsou jedna nebo více číslic.
_wtoi64
je shodný s tím rozdílem _atoi64
, že jako parametr přebírá řetězec širokého znaku.
Verze těchto funkcí s příponou _l
jsou shodné s tím rozdílem, že místo aktuálního národního prostředí používají předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
Rutina Tchar.h | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tstoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
_ttoi64 |
_atoi64 |
_atoi64 |
_wtoi64 |
Požadavky
Rutiny | Požadovaný hlavičkový soubor |
---|---|
_atoi64 , _atoi64_l |
<stdlib.h> |
_wtoi64 , _wtoi64_l |
<stdlib.h> nebo <wchar.h> |
Příklad
Tento program ukazuje, jak lze čísla uložená jako řetězce převést na číselné hodnoty pomocí _atoi64
funkcí.
// 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.
Viz také
Konverze dat
Podpora pro matematiku a plovoucí desetinou čárku
Národní prostředí
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, _atodbl_l
, _atoldbl
, _atoldbl_l
, , _atoflt
_atoflt_l