函数
<cwchar>

wcstoull

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

这是strtoull<cstdlib>)的宽字符等效函数,以相同方式解释str

参数

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

返回值

成功时,该函数将其转换后的整型数字作为unsigned long long intlong int
如果无法执行有效的转换,则返回零值(0ULL).
如果读取的值超出了可表示范围unsigned long long intlong intULLONG_MAXLONG_MINERANGE.

示例

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

int main ()
{
  wchar_t wsNumbers[] = L"250068492 7b06af00 1100011011110101010001100000 0x6fffff";
  wchar_t * pEnd;
  unsigned long long int ulli1, ulli2, ulli3, ulli4;
  ulli1 = wcstoull (wsNumbers,&pEnd,10);
  ulli2 = wcstoull (pEnd,&pEnd,16);
  ulli3 = wcstoull (pEnd,&pEnd,2);
  ulli4 = wcstoull (pEnd,NULL,0);
  wprintf (L"The decimal equivalents are: %llu, %llu, %llu and %llu.\n", ulli1, ulli2, ulli3, ulli4);
  return 0;
}

可能的输出

The decimal equivalents are: 250068492, 2064035584, 208622688 and 7340031.


另见