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

vwprintf

函数   <cwchar>

int vwprintf (const wchar_t* format, va_list arg);

将格式化的数据从变量参数列表打印到标准输出

将format指向的C宽字符串写入标准输出(stdout), 以与printf相同的方式替换任何格式说明符, 但使用由arg标识的变量参数列表中的元素,而不是附加参数。
在内部,函数从arg标识的列表中检索参数,就像在它上面使用了va_arg一样, 因此arg的状态可能会被调用改变。

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

标准输出中,宽字符的外部表示是多字节字符:获取这些多字节字符时, 就好像调用了wcrtomb 来转换每个宽字符(使用流的内部mbstate_t对象)。

这相当于vprintf (<cstdio>)的宽字符版本。

☲  参数


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

注意,所有格式说明符都具有与printf相同的含义;因此, %lc用于写入宽字符(而不是%c),以及%ls用于宽字符串(而不是%s)。

arg
一个值,标识用va_start初始化的变量参数列表。

va_list 是<cstdarg>中定义的特殊类型。

☉  返回值



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

☣  示例



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

void WriteWideFormatted ( const wchar_t * format, ... )
{
  va_list args;
  va_start (args, format);
  vwprintf (format, args);
  va_end (args);
}

int main ()
{
   WriteWideFormatted (L"Call with %d variable argument.\n",1);
   WriteWideFormatted (L"Call with %d variable %ls.\n",2,L"arguments");

   return 0;
}

输出:
Call with 1 variable argument.
Call with 2 variable arguments.

🍄  另请参阅



vprintf 将格式化的数据从变量参数列表打印到标准输出(function )
wprintf 将格式化数据写入标准输出(function )
printf 将格式化的数据打印到标准输出(function )

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