_atoi64, _atoi64_l, _wtoi64, _wtoi64_l

Mengonversi string menjadi bilangan bulat 64-bit.

Sintaks

__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
);

Parameter

str
String yang akan dikonversi.

locale
Lokal untuk digunakan.

Nilai hasil

Setiap fungsi mengembalikan nilai yang __int64 dihasilkan dengan menginterpretasikan karakter input sebagai angka. Nilai yang dikembalikan adalah 0 jika _atoi64 input tidak dapat dikonversi ke nilai jenis tersebut.

Jika fungsi meluap dengan nilai integral positif besar, fungsi tersebut mengembalikan I64_MAX. Fungsi mengembalikan I64_MIN jika meluap dengan nilai integral negatif besar.

Dalam semua kasus di luar rentang, errno diatur ke ERANGE. Jika parameter yang diteruskan adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini diatur errno ke EINVAL dan mengembalikan 0.

Keterangan

Fungsi-fungsi ini mengonversi string karakter menjadi nilai bilangan bulat 64-bit.

String input adalah urutan karakter yang dapat ditafsirkan sebagai nilai numerik dari jenis yang ditentukan. Fungsi berhenti membaca string input pada karakter pertama yang tidak dapat dikenali sebagai bagian dari angka. Karakter ini mungkin karakter null ('\0' atau L'\0') yang mengakhiri string.

Argumen str untuk _atoi64 memiliki formulir berikut:

[whitespace] [sign] [digits]

whitespace Terdiri dari karakter spasi atau tab, yang diabaikan; sign adalah plus (+) atau minus (-); dan digits adalah satu atau beberapa digit.

_wtoi64 identik dengan _atoi64 kecuali bahwa dibutuhkan string karakter yang lebar sebagai parameter.

Versi fungsi-fungsi ini dengan _l akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal saat ini. Untuk informasi selengkapnya, lihat Lokal.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

Rutinitas Tchar.h _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tstoi64 _atoi64 _atoi64 _wtoi64
_ttoi64 _atoi64 _atoi64 _wtoi64

Persyaratan

Rutinitas Header yang diperlukan
_atoi64, _atoi64_l <stdlib.h>
_wtoi64, _wtoi64_l <stdlib.h> atau <wchar.h>

Contoh

Program ini menunjukkan bagaimana angka yang disimpan sebagai string dapat dikonversi ke nilai numerik menggunakan _atoi64 fungsi.

// 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.

Baca juga

Konversi data
Dukungan matematika dan titik mengambang
Lokal
_ecvt
_fcvt
_gcvt
setlocale, _wsetlocale
_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l