函数
<cwchar>

wcstoll

long long int strtoll (const wchar_t* str, wchar_t** endptr, int base);
将宽字符串转换为长整数
解析 C 宽字符串 str,将其内容解释为指定 base 的整数,并返回该整数。long long int类型的值返回。如果 endptr 不是空指针,函数还会将 endptr 的值设置为指向数字之后的第一个字符。

这是 strtoll<cstdlib>)的*宽字符*等效函数,它以相同的方式解析 str

参数

str
以整数表示开头的 C 风格宽字符串。
endptr
对一个wchar_t*类型对象的引用,函数会将其值设置为 str 中数值部分之后的下一个字符。
该参数也可以是一个空指针,此时它将不被使用。

返回值

成功时,该函数将转换后的整数作为long intlong int
如果无法执行有效的转换,则返回零值(0LL).
)。如果读取的值超出了long long intlong intLLONG_MAXLLONG_MINLONG_MINERANGE.

示例

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;
}

可能的输出

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


另见