函式
<cwchar>

swscanf

int swscanf (const wchar_t* ws, const wchar_t* format, ...);
從字串讀取格式化資料
從寬字串ws讀取資料,並根據引數format將它們儲存到附加引數指定的記憶體位置,其效果類似於使用wscanf,但從ws讀取而不是從標準輸入(stdin)。

附加引數應該指向已分配的物件,其型別由 format 字串中相應的格式說明符指定。

這是sscanf<cstdio>)的寬字元版本。

引數

ws
C 寬字串,函式將此字串作為源來檢索資料。
format
C 語言寬字串,包含一個格式字串,其規範與 scanf 中的 format 相同(更多詳情請參見 scanf)。
請注意,所有格式說明符的含義與 scanf 中的相同;因此,%lc應用於讀取單個寬字元(而不是%c),同樣%ls應用於寬字串(而不是%s).
... (附加引數)
根據 format 字串,該函式可能需要一系列附加引數,每個引數都包含一個指向已分配儲存空間的指標,其中提取的字元的解釋將以適當的型別儲存。
這些引數的數量至少應與格式說明符儲存的值的數量相同。多餘的引數會被函式忽略。

返回值

成功時,函式返回成功填充的引數列表中的專案數。在匹配失敗的情況下,此計數可以與預期的專案數相匹配,也可能更少(甚至為零)。
如果在任何資料可以被成功解析之前發生輸入失敗,則返回 EOF

示例

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

int main ()
{
  wchar_t sentence [] = L"Michael is 10 years old";
  wchar_t str [20];
  int i;

  swscanf (sentence,L"%ls %*s %d",str,&i);
  wprintf (L"%ls -> %d\n",str,i);

  return 0;
}

輸出
Michael -> 10


另見