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

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

prototipo vsprintf ()

 int vsprintf (char * buffer, const char * formato, va_list vlist); 

La vsprintf()función escribe la cadena a la que apunta el formato en un búfer de cadena de caracteres. El formato de cadena puede contener especificadores de formato que comienzan con% que se reemplazan por los valores de las variables que se pasan como una lista vlist.

Está definido en el archivo de encabezado.

vsprintf () Parámetros

  • buffer: puntero a una cadena de caracteres para escribir el resultado.
  • formato: puntero a una cadena terminada en nulo que se escribe en la secuencia del archivo. Consiste en caracteres junto con especificadores de formato opcionales que comienzan con%.

    Los especificadores de formato se reemplazan por los valores de las variables respectivas que siguen a la cadena de 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:
      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: %(flags)(width)(.precision)(length)specifier

  • vlist: una lista de argumentos que contienen los datos para escribir.

vsprintf () Valor de retorno

Si tiene éxito, la vsprintf()función devuelve el número de caracteres escritos. Si falla, devuelve un valor negativo.

Ejemplo: cómo funciona la función vsprintf ()

 #include #include void write(char* buf, const char *fmt,… ) ( va_list args; va_start(args, fmt); vsprintf(buf, fmt, args); va_end(args); ) int main () ( char buffer(100); char fname(20) = "Bjarne"; char lname(20) = "Stroustrup"; char lang(5) = "C++"; write(buffer, "%s was created by %s %s", lang, fname, lname); printf("%s", buffer); return 0; )

Cuando ejecute el programa, la salida será:

 C ++ fue creado por Bjarne Stroustrup

Articulos interesantes...