C++官网参考链接:https://cplusplus.com/reference/cwchar/wcstol/
函数
<cwchar>
wcstol
long int wcstol (const wchar_t* str, wchar_t** endptr, int base);
将宽字符串转换为long整数
解析C宽字符串str,将其内容解释为指定base的整数,该整数作为long int值返回。如果endptr不是空指针,该函数还将endptr的值设置为指向数字后面的第一个字符。
这是strtol(<cstdlib>)的宽字符的等价函数,以相同的方式解释str。
形参
str
以整数表示开始的宽字符串。
endptr
对wchar_t*类型对象的引用,其值由函数设置为str中数值之后的下一个字符。
此形参也可以是空指针,在这种情况下不使用它。
返回值
如果成功,该函数将转换后的整数值作为long int值返回。
如果不能执行有效的转换,则返回0值(0L)。
如果读取的值超出了long int可表示值的范围,则函数返回LONG_MAX或LONG_MIN(在<climits>中定义),并且errno设置为ERANGE。
用例
/* 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;
}
输出: