C++中的vwprintf()函数用于将格式化的宽字符串写入stdout 。它将格式化的数据从变量参数列表打印到stdout。在内部,该函数从arg标识的列表中检索参数,就好像在其上使用了va_arg一样,因此arg的状态可能会被调用更改。宽字符串格式可能包含以%开头的格式说明符,这些格式说明符由作为列表vlist传递的变量的值替换。
它在头文件
句法 :
int vwprintf( const wchar_t* format, va_list vlist )
参数:该函数接受四个强制性参数,如下所述:
- 格式:指定指向以空终止的宽字符串的指针,该指针将被写入stdout
- arg:指定一个值,该值标识用va_start初始化的变量参数列表
返回值:函数返回两个值,如下所示:
- 成功后,将返回写入的字符总数。
- 如果发生某些错误,则返回负数。
下面的程序说明了上述函数:
程序1:
// C++ program to illustrate the
// vwprintf() function
// for some english letter
#include
using namespace std;
// function to print formatted
// data from variable argument list to stdout
void write(const wchar_t* format, ...)
{
// hold the variable argument
va_list arg;
// A function that invokes va_start
// shall also invoke va_end before it returns.
va_start(arg, format);
vwprintf(format, arg);
va_end(arg);
}
// Driver code
int main()
{
setlocale(LC_ALL, "en_US.UTF-8");
wchar_t buffer[5][10] = { L"First", L"Second", L"Third",
L"Fourth", L"Fifth" };
int k = 0;
// print letters by calling write function
wprintf(L"Some English Letters\n");
for (wchar_t i = L'A'; i <= L'E'; i++) {
write(L"%ls : %lc\n", buffer[k], i);
k++;
}
return 0;
}
输出:
Some English Letters
First : A
Second : B
Third : C
Fourth : D
Fifth : E
// C++ program to illustrate the
// vwprintf() function
// for some Latin letters
#include
using namespace std;
// function to print formatted
// data from variable argument list to stdout
void write(const wchar_t* format, ...)
{
// hold the variable argument
va_list arg;
// A function that invokes va_start
// shall also invoke va_end before it returns.
va_start(arg, format);
vwprintf(format, arg);
va_end(arg);
}
// Driver code
int main()
{
setlocale(LC_ALL, "en_US.UTF-8");
wchar_t buffer[5][10] = { L"First", L"Second", L"Third",
L"Fourth", L"Fifth" };
int k = 0;
// print letters by calling write function
wprintf(L"Some Latin Letters\n");
for (wchar_t i = L'\u0021'; i <= L'\u0025'; i++) {
write(L"%ls : %lc\n", buffer[k], i);
k++;
}
return 0;
}
输出:
Some Latin Letters
First : !
Second : "
Third : #
Fourth : $
Fifth : %
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。