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

La función vfwscanf() en C++ se usa para leer datos formateados de una string ancha en una lista de argumentos variables. También lee strings de caracteres anchas de un búfer de strings anchas. Esta función lee datos de ws y los almacena según el formato en las ubicaciones señaladas por los elementos en la lista de argumentos variables identificada por arg .
se define enarchivo de biblioteca.

Sintaxis:

int vswscanf( const wchar_t* ws, const wchar_t* format, va_list arg )

Parámetros: la función acepta tres parámetros obligatorios que se describen a continuación:

  • ws: Puntero a la string ancha terminada en nulo para leer los datos
  • format : Puntero a una string de caracteres anchos terminada en nulo que especifica cómo leer la entrada
  • arg: un valor que identifica una lista de argumentos variables inicializada con va_start.

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

  • en caso de éxito, devuelve el número de argumentos leídos con éxito.
  • en caso de falla, se devuelve EOF

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

// C++ program to illustrate the
// vswscanf() function
#include <bits/stdc++.h>
using namespace std;
  
// ws : pointer to the wide string
// format : to read the input
void wideMatch(const wchar_t* ws, const wchar_t* format, ...)
{
    va_list arg;
  
    // A function that invokes va_start
    // shall also invoke va_end before it returns.
    va_start(arg, format);
  
    // vswscanf() reads formatted data from wide
    // string into variable argument list
    vswscanf(ws, format, arg);
    va_end(arg);
}
  
// Driver code
int main()
{
    setlocale(LC_ALL, "en_US.UTF-8");
  
    // initialize the buffer
    wchar_t wideS[] = L"GFG";
    wchar_t string[20];
  
    wideMatch(wideS, L"%ls", string);
    wprintf(L"Random Symbols are :\n");
  
    // print all the symbols
    for (int i = 0; i < wcslen(string); i++) {
        putwchar(string[i]);
        putwchar(' ');
    }
  
    return 0;
}
Producción:

Random Symbols are :
G F G

Programa 2:

// C++ program to illustrate the
// vswscanf() function
  
#include <bits/stdc++.h>
using namespace std;
  
void WideString(const wchar_t* ws, const wchar_t* format, ...)
{
    va_list arg;
    // A function that invokes va_start
    // shall also invoke va_end before it returns.
    va_start(arg, format);
  
    // vswscanf() reads formatted data from wide
    // string into variable argument list
    vswscanf(ws, format, arg);
    va_end(arg);
}
  
// Driver code
int main()
{
    int value;
  
    // initialize the buffer
    wchar_t wideS[] = L"100 websites of GeekforGeeks";
  
    WideString(wideS, L" %d %ls ", &value, wideS);
  
    // print all the symbols
    wprintf(L"Best: %ls\nQuantity: %d\n", wideS, value);
  
    return 0;
}
Producción:

Best: websites
Quantity: 100

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 *