swscanf
函数 <cwchar>
int swscanf (const wchar_t* ws, const wchar_t* format, ...);
从字符串读取格式化的数据
从宽字符串ws读取数据,并根据参数格式将它们存储到附加参数给出的位置,
就像使用了
wscanf
一样,但是从ws而不是标准输入(
stdin)读取数据。
附加参数应该指向已经分配的对象,该对象的类型由格式字符串中相应的格式说明符指定。
这相当于
sscanf (<
cstdio>)的宽字符版本。
☲ 参数
ws
C宽字符串,函数将其作为源处理以检索数据。
format
C宽字符串,包含一个格式字符串,该格式字符串遵循与
scanf格式相同的规范
(有关详细信息,请参阅
scanf)。
注意,所有格式说明符都具有与
scanf相同的含义;因此,
%lc用于宽字符(而不是%c),以及%ls用于宽字符串(而不是%s)。
... (附加参数)
根据格式字符串的不同,函数可能需要一个附加参数序列,每个参数包含一个指针,
该指针指向分配的存储空间,在该存储空间中,对提取出来的字符的解释将以相应的类型存储。
这些参数的数量至少应该与格式说明符中指定的值的数量一样多。其他参数被函数忽略。
☉ 返回值
成功时,函数返回参数列表中已成功填充的项数。
此计数可以与预期的项目数匹配,或者在匹配失败的情况下,此计数可以小于-甚至为零。
如果在成功解释任何数据之前出现输入失败,则返回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;
}
|
输出:
Michael -> 10
🍄 另请参阅