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

vsprintf

函数  <cstdio>

int vsprintf (char * s, const char * format, va_list arg );
将格式化的数据从变量参数列表写入字符串
使用与printf使用format时打印的文本相同的文本组成字符串, 但使用由arg标识的变量参数列表中的元素而不是其他函数参数,并将生成的内容作为C字符串存储在s指向的缓冲区中。

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

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

☲  参数



s
指向存储C-string结果的缓冲区的指针。
缓冲区应该足够大,以容纳产生的字符串。

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

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

☉  返回值



如果成功,则返回所写的字符总数。
如果失败,则返回一个负数。

☣  示例



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

void PrintFError ( const char * format, ... )
{
  char buffer[256];
  va_list args;
  va_start (args, format);
  vsprintf (buffer,format, args);
  perror (buffer);
  va_end (args);
}

int main ()
{
  FILE * pFile;
  char szFileName[]="myfile.txt";

  pFile = fopen (szFileName,"r");
  if (pFile == NULL)
    PrintFError ("Error opening '%s'",szFileName);
  else
  {
    // file successfully open
    fclose (pFile);
  }
  return 0;
}

在这个例子中,如果文件myfile.txt不存在,则调用perror来显示类似于这样的错误消息:
Error opening file 'myfile.txt': No such file or directory


🍄  另请参阅



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

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