C ++ swprintf () - Biblioteca estándar de C ++

La función swprintf () en C ++ se usa para escribir una cadena ancha formateada en un búfer de cadena ancha.

La función swprintf () se define en el archivo de encabezado.

prototipo swprintf ()

 int swprintf (wchar_t * búfer, tamaño_t tamaño, const wchar_t * formato,…);

La función swprintf () escribe la cadena ancha apuntada por formato en el búfer. El número máximo de caracteres que se pueden escribir es (tamaño-1).

Una vez escritos los caracteres, se agrega un carácter ancho nulo de terminación.

El formato de cadena 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 swprintf () como argumentos adicionales.

Parámetros de swprintf ()

  • buffer: puntero al búfer de cadena para escribir el resultado.
  • tamaño: especifique el número máximo de caracteres que se escribirán en el búfer, que es tamaño-1.
  • formato: un puntero a una cadena 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 variables respectivas que siguen al formato.
    El especificador de formato tiene las siguientes partes:
    • Un signo de% inicial
    • Banderas: una o más banderas opcionales que modifican el comportamiento de conversión.
      • -: justifica a la izquierda el resultado dentro del campo. Por defecto, está justificado a la derecha.
      • +: El signo del resultado se adjunta al comienzo del valor, incluso para resultados positivos.
      • Espacio: si no hay ningún signo, se adjunta un espacio al comienzo del resultado.
      • #: Se realiza una forma alternativa de conversión.
      • 0: se utiliza para números enteros y de coma flotante. Los ceros iniciales se utilizan para rellenar los números en lugar de espacios.
    • Ancho: un valor opcional * o entero utilizado para especificar el campo de ancho mínimo.
    • Precisión: un campo opcional que consta de un. seguido de * o entero o nada para especificar la precisión.
    • Longitud: un modificador de longitud opcional que especifica el tamaño del argumento.
    • Especificador: un especificador de formato de conversión. Los especificadores de formato disponibles son los siguientes:
    Especificadores de formato
    Especificador de formato Descripción
    % % De impresiones
    C Escribe un solo carácter
    s Escribe una cadena de caracteres
    do yo Convierte un entero con signo en representación decimal
    o Convierte un entero sin signo en una representación octal
    X o x Convierte un entero sin signo en una representación hexadecimal
    tu Convierte un entero sin signo en una representación decimal
    F o f Convierte un número de punto flotante a la representación decimal
    E o e Convierte un número de punto flotante a la notación de exponente decimal
    A o a Convierte un número de punto flotante al exponente hexadecimal
    G o g Convierte un número de punto flotante a una notación decimal o de exponente decimal
    norte Devuelve el número de caracteres escritos hasta ahora por esta llamada a la función. El resultado se escribe en el valor apuntado por el argumento
    pags Escribe una secuencia de caracteres definida por la implementación que define un puntero.

    Entonces, el formato general del especificador de formato es:
     % (banderas) (ancho) (. precisión) (largo) especificador
  • …: Otros argumentos adicionales que especifican los datos a escribir. Ocurren en una secuencia de acuerdo con el especificador de formato.

swprintf () Valor de retorno

  • En caso de éxito, la función swprintf () devuelve el número de caracteres escritos excluyendo el carácter ancho nulo de terminación.
  • Si se produjo un error de codificación o si el número de caracteres a generar era igual o mayor que el tamaño, se devuelve un valor negativo.

Ejemplo: ¿Cómo funciona la función swprintf ()?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )

Cuando ejecute el programa, se escribirá lo siguiente en example.txt:

 Algunas letras hebreas א ב ס ד ת

Articulos interesantes...