función vwprintf() en C/C++

La función vwprintf() en C++ se usa para escribir una string ancha formateada en la salida estándar . Imprime datos formateados desde la lista de argumentos variables a stdout. Internamente, la función recupera argumentos de la lista identificada por arg como si se hubiera usado va_arg en ella y, por lo tanto, es probable que la llamada altere el estado de arg . El formato de string ancha puede contener especificadores de formato que comienzan con % que se reemplazan por los valores de las variables que se pasan como una lista vlist .
Se define en el archivo de cabecera <cwchar.h>
Sintaxis:

int vwprintf( const wchar_t* format, va_list vlist )

Parámetro: La función acepta cuatro parámetros obligatorios que se describen a continuación:

  • formato: especifica un puntero a una string ancha terminada en nulo que se escribe en stdout
  • arg: especifica un valor que identifica una lista de argumentos variables inicializada con va_start

Valor devuelto: la función devuelve dos valores como se muestra a continuación:

  • En caso de éxito, se devuelve el número total de caracteres escritos.
  • Se devuelve un número negativo si se produce algún error.

Los siguientes programas ilustran la función anterior:
Programa 1:

// C++ program to illustrate the
// vwprintf() function
// for some english letter
  
#include <bits/stdc++.h>
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;
}
Producción:

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 <bits/stdc++.h>
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;
}
Producción:

Some Latin Letters
First : !
Second : "
Third : #
Fourth : $
Fifth : %

Publicación traducida automáticamente

Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *