C++官网参考链接:https://cplusplus.com/reference/cwchar/swscanf/
函数
<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。
用例
/* 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;
}
输出:
另请参考
wscanf Read formatted data from stdin (function)
swprintf Write formatted data to wide string (function)
sscanf Read formatted data from string (function)