function
<cwchar>

wcstoll

long long int strtoll (const wchar_t* str, wchar_t** endptr, int base);
Convert wide string to long long integer
Parses the C wide string str interpreting its content as an integral number of the specified base, which is returned as a long long int value. If endptr is not a null pointer, the function also sets the value of endptr to point to the first character after the number.

This is the wide character equivalent of strtoll (<cstdlib>), interpreting str in the same way.

Parameters

str
C wide string beginning with the representation of an integral number.
endptr
Reference to an object of type wchar_t*, whose value is set by the function to the next character in str after the numerical value.
This parameter can also be a null pointer, in which case it is not used.

Return Value

On success, the function returns the converted integral number as a long int value.
If no valid conversion could be performed, a zero value is returned (0LL).
If the value read is out of the range of representable values by a long long int, the function returns LLONG_MAX or LLONG_MIN (defined in <climits>), and errno is set to ERANGE.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* wcstoll example */
#include <wchar.h>

int main ()
{
  wchar_t wsNumbers[] = L"1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
  wchar_t * pEnd;
  long long int lli1, lli2, lli3, lli4;
  lli1 = wcstoll (wsNumbers,&pEnd,10);
  lli2 = wcstoll (pEnd,&pEnd,16);
  lli3 = wcstoll (pEnd,&pEnd,2);
  lli4 = wcstoll (pEnd,NULL,0);
  wprintf (L"The decimal equivalents are: %lld, %lld, %lld and %lld.\n", lli1, lli2, lli3, lli4);
  return 0;
}

Possible output:

The decimal equivalents are: 1856892505, 6358606123, -208340076 and 7340031


See also