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

C++官网参考链接:https://cplusplus.com/reference/cwchar/vswscanf/

函数

vswscanf
int vswscanf (const wchar_t* ws, const wchar_t* format, va_list arg);
从宽字符串读取格式化数据到可变实参列表
从ws读取数据,并根据形参format将数据存储到由arg标识的可变实参列表中的元素所指向的位置。
在内部,该函数从arg标识的列表中获取实参,就像对它使用了va_arg一样,因此arg的状态很可能被调用改变。
在任何情况下,arg都应该在调用之前的某个时刻由va_start初始化,并期望在调用之后的某个时刻由va_end释放。
这是vsscanf()的宽字符等效函数。

形参 
ws
C宽字符串,该函数将其处理为获取数据的源。
format 
C宽字符串,包含一个格式字符串,该格式字符串遵循与scanf中的format相同的规范(详细信息请参阅scanf)。
请注意,所有格式说明符的含义都与scanf中的含义相同;因此,%lc应使用用于读取宽字符(而不是%c),%ls应使用用于宽字符串(而不是%s)。
arg 
一个值,标识用va_start初始化的可变实参列表。
va_list是中定义的特殊类型。

返回值
成功时,函数返回实参列表中成功填充的项数。在匹配失败的情况下,该计数可以与预期的项目数量匹配,或者更少---甚至为零。
如果在成功解释任何数据之前出现输入失败,则返回EOF。

用例
/* vswscanf example */
#include
#include

void GetWideMatches ( const wchar_t * str, const wchar_t * format, ... )
{
  va_list args;
  va_start (args, format);
  vswscanf (str, format, args);
  va_end (args);
}

int main ()
{
  int val;
  wchar_t buf[100];

  GetWideMatches ( L"99 bottles of beer on the wall", L" %d %ls ", &val, buf);

  wprintf (L"Product: %ls\nQuantity: %d\n", buf, val);

  return 0;
}
可能的输出:

C++ Reference: Standard C++ Library reference: C Library: cwchar: vswscanf_第1张图片

另请参考
wscanf    Read formatted data from stdin (function)
vfwscanf    Read formatted data from stream into variable argument list (function)
swscanf    Read formatted data from string (function)
scanf    Read formatted data from stdin (function)
vswprintf    Write formatted data from variable argument list to sized buffer (function) 

你可能感兴趣的:(C++,Reference,C,Library,c++,c语言,vswscanf)