函式
<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


另見