wprintf() y wscanf en la Biblioteca C

Si está tratando con caracteres anchos, no se pueden usar las funciones printf() y scanf(). Hay diferentes funciones para entrada y salida de string ancha C.

  1. wprintf() : la función wprintf() escribe la string ancha a la que apunta format en stdout. 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 a la función wprintf() como argumentos adicionales.

    Sintaxis:

    int wprintf (const wchar_t* format, ...);

    Parámetros:

    • format : un puntero a una string ancha terminada en nulo que se escribe en stdout. Consiste en caracteres anchos junto con especificadores de formato opcionales que comienzan con %. Los especificadores de formato se reemplazan por los valores de las respectivas variables que siguen al formato.
    • … : Otros argumentos adicionales que especifican los datos a imprimir. Ocurren en una secuencia de acuerdo con el especificador de formato. Debe haber al menos tantos de estos argumentos como la cantidad de valores especificados en los especificadores de formato. La función ignora los argumentos adicionales.
    • Valor devuelto: si tiene éxito, la función wprintf() devuelve el número de caracteres escritos. En caso de falla devuelve un valor negativo. Si tiene éxito, la función wprintf() devuelve el número de caracteres escritos.
      En caso de falla devuelve un valor negativo.

    // C Program to show the wprintf() function.
    #include <stdio.h>
    #include <wchar.h> // Header file containing wprintf function
    // Driver code
    int main()
    {
        wint_t x = 5;
        wchar_t name[] = L"GEEKS";
        wprintf(L"x = %d \n", x);
        wprintf(L"HELLO %ls \n", name);
        return 0;
    }

    Producción:

    x = 5 
    HELLO GEEKS
    
  2. wscanf() : la función wscanf() lee los datos de stdin y almacena los valores en las respectivas variables. Los argumentos adicionales deben apuntar a objetos ya asignados del tipo especificado por su especificador de formato correspondiente dentro de la string de formato.

    Sintaxis:

    int wscanf (const wchar_t* format, ...);

    Parámetros:

    • format : Puntero a una string de caracteres terminada en nulo que especifica cómo leer la entrada. Consiste en especificadores de formato que comienzan con %. Tenga en cuenta, sin embargo, que todos los especificadores de formato tienen el mismo significado que en scanf; por lo tanto, %lc se debe usar para leer un carácter ancho (y no %c), así como %ls se debe usar para strings anchas (y no %s).
    • … : Otros argumentos adicionales para recibir datos. Ocurren en una secuencia de acuerdo con el especificador de formato. Debe haber al menos tantos de estos argumentos como el número de valores almacenados por los especificadores de formato. La función ignora los argumentos adicionales.
    • Valor devuelto: la función wscanf() devuelve el número de argumentos de recepción asignados con éxito. Podemos contar y hacer coincidir el número esperado de elementos o ser menos debido a una falla de coincidencia, se produjo un error de lectura o el alcance del final del archivo provoca un error.
      Si se produce un error antes de que se asignara el primer argumento de recepción, se devuelve EOF.

    // Program to show the wprintf() function.
    #include <stdio.h>
    #include <wchar.h> // Header file containing wscanf() function
    int main()
    {
        wchar_t str[80];
        int i;
      
        wscanf(L"%ls", str);
        wscanf(L"%d", &i);
        wprintf(L"I am a %ls of CSE in %d year.\n", str, i);
        return 0;
    }

    Aporte:

    GEEK
    2
    

    Producción:

    I am a GEEK of CSE in 2 year.
    

Publicación traducida automáticamente

Artículo escrito por agrawalmohak99 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 *