📅  最后修改于: 2023-12-03 15:29:41.661000             🧑  作者: Mango
在C/C++编程中,vwprintf()
函数是一个可变参数函数,它与wprintf()
函数非常相似,但可以接受可变数量的参数列表。这个函数可以接受一个格式化字符串,用于指定输出参数的格式。
int vwprintf(const wchar_t* format, va_list arg);
函数原型中的vwprintf()
函数接受两个参数。第一个是一个格式化字符串,第二个是一个指向参数列表的va_list
类型的指针。
format
:格式化字符串,类似于printf()
函数中的格式化字符串;arg
:参数列表,支持可变长度参数。vwprintf()
函数的返回值为输出的字符数量,如果出现错误则返回一个负数。
#include <iostream>
#include <clocale>
#include <cwchar>
#include <stdarg.h>
using namespace std;
void my_wprintf(const wchar_t* format, ...)
{
va_list arg;
va_start(arg, format);
vwprintf(format, arg);
va_end(arg);
}
int main()
{
setlocale(LC_ALL, "en_US.utf8");
my_wprintf(L"%ld %ls %c\n", 12345L, L"abc", L'd');
return 0;
}
运行结果:
12345 abc d
vswprintf()
函数。NULL
结尾的变量列表。vwprintf()
函数不对输出字符串长度进行限制,因此使用时必须确保不会溢出。