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

swprintf

函数   <cwchar>

int swprintf (wchar_t* ws, size_t len, const wchar_t* format, ...);

将格式化的数据写入宽字符串

如果在wprintf上使用format,将打印相同的文本, 但内容将作为C宽字符串存储在ws指向的缓冲区中,而不是打印。
如果得到的宽字符串长度超过len-1字符,则丢弃其余字符,不存储。

在内容之后会自动附加一个终止空字符。

在format形参之后,函数期望至少与format所需的参数一样多的附加参数。

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

☲  参数


ws
指向缓冲区的指针,生成的C宽字符串存储在这里。
缓冲区的大小应该至少为len个字符。

len
要填充ws缓冲区的最大宽字符数。
生成的字符串长度最多为len-1,为额外的结束空宽字符留下空间。
size_t是一个无符号整型。

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

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

... (附加参数)
根据格式字符串的不同,函数可能需要一系列附加参数, 每个参数都包含一个用于替换格式字符串中的格式说明符的值 (或者一个指向存储位置的指针,对应于len)。

这些参数的数量至少应该与格式说明符中指定的值的数量一样多。其他参数被函数忽略。

☉  返回值



如果成功,则返回所写的字符总数。此计数不包括自动附加在字符串末尾的其他空字符。
如果失败(如写入ws的结果字符串超过len个字符),将返回一个负数.

☣  示例



/* swprintf example */
#include <stdio.h>
#include <wchar.h>

int main ()
{
  wchar_t buffer [100];
  int cx;

  cx = swprintf ( buffer, 100, L"The half of %d is %d", 80, 80/2 );

  swprintf ( buffer+cx, 100-cx-1, L", and the half of that is %d.", 80/2/2 );

  fputws ( buffer, stdout );

  return 0;
}

输出:
The half of 80 is 40, and the half of that is 20.

🍄  另请参阅



snprintf 将格式化输出写入特定大小缓冲区(function )
wprintf 将格式化数据写入标准输出(function )
swscanf 从字符串读取格式化的数据(function )

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