函数
<cwchar>

wcstol

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

这是 strtol (<cstdlib>) 的宽字符版本,以相同的方式解释 str

参数

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

返回值

成功时,函数返回转换后的整数值,类型为long intlong int
如果无法执行有效的转换,则返回零值(0L).
)。如果读取的值超出了long intlong int可表示的值范围,函数返回LONG_MAXLONG_MIN(定义于 <climits>),并将 errno 设置为.

示例

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

int main ()
{
  wchar_t wsNumbers[] = L"2001 60c0c0 -1101110100110100100000 0x6fffff";
  wchar_t * pEnd;
  long int li1, li2, li3, li4;
  li1 = wcstol (wsNumbers,&pEnd,10);
  li2 = wcstol (pEnd,&pEnd,16);
  li3 = wcstol (pEnd,&pEnd,2);
  li4 = wcstol (pEnd,NULL,0);
  wprintf (L"The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
  return 0;
}

输出

The decimal equivalents are: 2001, 6340800, -3624224 and 7340031


另见