📅  最后修改于: 2023-12-03 14:39:53.815000             🧑  作者: Mango
vswprintf()
The vswprintf()
function in C++ is used to format and store a series of characters into a wide string based on a format string and a variadic argument list. It is a wide-character version of the vsprintf()
function and is part of the <cwchar>
header.
The syntax of the vswprintf()
function is as follows:
int vswprintf(wchar_t* buffer, size_t bufferSize, const wchar_t* format, va_list argList);
buffer
: Pointer to the wide string where the output will be stored.bufferSize
: Maximum number of wide characters that can be stored in the buffer.format
: Wide string specifying the format of the output.argList
: Variable argument list obtained from va_start()
macro.The vswprintf()
function returns the number of wide characters written to the buffer, excluding the null-terminating wide character. If an error occurs, a negative value is returned.
Here's an example usage of the vswprintf()
function:
#include <cstdio>
#include <cwchar>
#include <cstdarg>
int main() {
wchar_t buffer[100];
const wchar_t* format = L"The sum of %d and %d is %d.";
int a = 5, b = 10, sum;
sum = a + b;
int result = vswprintf(buffer, sizeof(buffer) / sizeof(wchar_t), format, a, b, sum);
if (result >= 0) {
wprintf(L"Formatted string: %ls\n", buffer);
} else {
wprintf(L"Error formatting string.\n");
}
return 0;
}
In this example, vswprintf()
is used to format a wide string into the buffer
based on the provided format string (L"The sum of %d and %d is %d."
). The variables a
, b
, and sum
are passed as arguments to the format string using the variable argument list argList
. The resulting formatted string is then printed using wprintf()
.
vswprintf()
function supports a wide range of format specifiers, similar to other formatted output functions in C++. Refer to the documentation for more details on format specifiers.vswprintf()
function is a useful tool for formatting wide strings in situations where the format string or the number of arguments is not known at compile time.For more information on the vswprintf()
function, refer to the C++ reference documentation.