Sdílet prostřednictvím


_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 NULLparametr 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] [sign] [digits]

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 Definovány _UNICODE Definovány
_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é

Převod 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