C++ Reference: Standard C++ Library reference: C Library: cwchar: swscanf

发布于:2022-11-03 ⋅ 阅读:(549) ⋅ 点赞:(0)

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) 


网站公告

今日签到

点亮在社区的每一天
去签到