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


vscanf

函数  <cstdio>

int vscanf ( const char * format, va_list arg );
将格式化的数据读入变量参数列表
从标准输入(stdin)读取数据,并根据参数格式将数据存储到由arg标识的变量参数列表中的元素所指向的位置中。

在内部,函数从arg标识的列表中检索参数,就像在它上面使用了va_arg一样,因此arg的状态很可能会被调用改变。

在任何情况下,arg都应该在调用之前的某个点被va_start初始化,并且它应该在调用之后的某个点被va_end释放。

☲  参数



format
C字符串,它包含一个格式字符串,该格式字符串遵循与scanf格式相同的规范(详情请参阅scanf)。

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

☉  返回值



如果成功,函数将返回成功填充参数列表的项数。该计数可以匹配预期的项数, 或者由于匹配失败、读取错误或文件结束的范围而小于(甚至为零)。

如果发生读取错误或在读取时到达文件结束,则设置正确的指示符(feofferror)。 并且,如果任何一种情况发生在任何数据可以成功读取之前,则返回EOF.

如果在解释宽字符时发生编码错误,该函数将errno设置为EILSEQ。

☣  示例



/* vscanf example */
#include <stdio.h>
#include <stdarg.h>

void GetMatches ( const char * format, ... )
{
  va_list args;
  va_start (args, format);
  vscanf (format, args);
  va_end (args);
}

int main ()
{
  int val;
  char str[100];

  printf ("Please enter a number and a word: ");
  fflush (stdout);
  GetMatches (" %d %99s ", &val, str);
  printf ("Number read: %d\nWord read: %s\n", val, str);

  return 0;
}

输出:
Please enter a number and a word: 911 airport
Number read: 911
Word read: airport


🍄  另请参阅



scanf 从stdin读取格式化的数据(function )
vfscanf 从流中读取格式化的数据到变量参数列表中(function )
vsscanf 从字符串中读取格式化的数据到变量参数列表中(function )
fscanf 从流读取格式化的数据(function )

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