std::vwprintf, std::vfwprintf, std::vswprintf
在标头
<cwchar>
定义
|
||
int
vwprintf(
const
wchar_t*
format, va_list
vlist );
|
(1) | |
int
vfwprintf( std::FILE*
stream, const
wchar_t*
format, va_list
vlist );
|
(2) | |
int
vswprintf(
const
wchar_t*
buffer, std::size_t
buf_size,
const wchar_t* format, va_list vlist ); |
(3) | |
从 vlist
所定义的位置加载数据,转换为宽字符串等价版本,并将结果写入各种池。
stream
。
buffer
。至多写入后随空宽字符的 size-1 个宽字符。参数
stream | - | 要写入的输出宽流 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
buffer | - | 指向要写入的宽字符串的指针 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
buf_size | - | 要写入的最大宽字符数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
format | - | 指向指定如何转译数据的空终止宽字符串的指针。
格式字符串由普通宽字符(除了
下列格式指示符可用:
浮点转换函数转换无穷大到 非数转换成 转换 尽管 定宽整数类型( int8_t
等)的正确转换指示定义于头文件 <cinttypes>
(尽管 PRIdMAX
、 PRIuMAX
等就是 内存写入转换指示符 %n
是安全漏洞的常见目标,这里格式字符串依赖用户输入,而有边界检查的
在每个转换指示符的行动后有一个序列点;这允许于同一变量多次存入 %n 的结果,并在同一此调用中打印出先前以 %n 存储的值。 若转换指示非法,则行为未定义。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vlist | - | 含有待打印数据的可变参数列表 |
返回值
size
则为负值。
注解
窄字符串提供 std::vsnprintf
,它使得程序能够确定要求的输出缓冲区大小。不过宽字符串无等价版本,而且为确定缓冲区大小,程序需要调用
std::vswprintf
并检查结果值,再重新分配更大的缓冲区,反复尝试直至成功。
示例
本节未完成 原因:暂无示例 |
参阅
(C++11)
|
使用可变实参列表 打印有格式输出到 stdout、文件流或缓冲区 (函数) |
打印有格式宽字符输出到 stdout、文件流或缓冲区
(函数) |