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


另见