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

vfprintf

函数  <cstdio>

int vfprintf ( FILE * stream, const char * format, va_list arg );
将格式化的数据从变量参数列表写入流
将由format指向的C字符串写入流,以与printf相同的方式替换任何格式说明符, 但使用由arg标识的变量参数列表中的元素,而不是其他函数参数。

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

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

☲  参数



stream
指向标识输出流的FILE对象的指针。

format
C字符串,包含一个格式字符串,该格式字符串遵循与printf格式相同的规范(请参阅printf了解详细信息)。

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

☉  返回值



如果成功,则返回所写的字符总数。
如果发生写错误,则设置错误指示符(ferror)并返回一个负数。
如果在写入宽字符时发生多字节字符编码错误,则将errno设置为EILSEQ并返回一个负数。

☣  示例



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

void WriteFormatted (FILE * stream, const char * format, ...)
{
  va_list args;
  va_start (args, format);
  vfprintf (stream, format, args);
  va_end (args);
}

int main ()
{
   FILE * pFile;

   pFile = fopen ("myfile.txt","w");

   WriteFormatted (pFile,"Call with %d variable argument.\n",1);
   WriteFormatted (pFile,"Call with %d variable %s.\n",2,"arguments");

   fclose (pFile);

   return 0;
}
该示例演示了如何使用不同数量的参数调用 WriteFormatted,这些参数将依次传递给vfprintf函数。
myfile.txt将包含:
输出:
Call with 1 variable argument.
Call with 2 variable arguments.


🍄  另请参阅



vprintf 将格式化的数据从变量参数列表打印到标准输出(function )
printf 将格式化的数据写入stdout(function )
vsprintf 将格式化的数据从变量参数列表写入字符串(function )
fprintf 将格式化的数据写入流(function )

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