Home C&C++函数库 c++ 语法 程序源码 Linux C库


vswscanf

函数   <cwchar>

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(<cstdio>)的宽字符版本。

☲  参数


ws
函数检索数据的源C宽字符串。

format
C宽字符串,包含一个格式字符串, 该格式字符串遵循与scanf格式相同的规范(有关详细信息,请参阅scanf)。
注意,所有格式说明符都具有与scanf相同的含义; 因此,应使用%lc读取宽字符(而不是%c),以及应使用%ls读取宽字符串(而不是%s)。

arg
一个值,标识用va_start初始化的变量参数列表。
Va_list是<cstdarg>中定义的特殊类型

☉  返回值



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

☣  示例



/* vswscanf example */
#include <stdarg.h>
#include <wchar.h>

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;
}

可能输出:
Product: bottles
Quantity: 99

🍄  另请参阅



wscanf 从stdin读取格式化的数据(function )
vfwscanf 从流中读取格式化的数据到变量参数列表中(function )
swscanf 从字符串读取格式化的数据(function )
scanf 从stdin读取格式化的数据(function )
vswprintf 将格式化的数据从变量参数列表写入特定大小的缓冲区(function )

联系我们 免责声明 关于CandCplus 网站地图