Skip to content

ft_printf_c

Marcos edited this page Oct 6, 2024 · 1 revision

La función ft_printf es la implementación personalizada de printf. Esta función recibe una cadena de formato con posibles especificadores y una lista variable de argumentos, que se imprimen en la salida estándar según el formato especificado.

Implementación

Inclusión de la Cabecera

#include "ft_printf.h"

Se incluye el archivo de cabecera ft_printf.h que contiene las declaraciones necesarias para esta implementación.

Función ft_printf

int ft_printf(const char *format, ...)

Parámetros:

  • const char *format: Cadena que contiene el texto y los especificadores de formato (como %d, %s, etc.).
  • ...: Lista variable de argumentos que se imprimirán según los especificadores de la cadena de formato.

Funcionamiento:

  1. Inicializa una lista de argumentos variables con va_start.
  2. Recorre la cadena de formato carácter por carácter.
  3. Si encuentra un símbolo %, llama a ft_format para manejar el formato correspondiente.
  4. Si no es un símbolo %, llama a ft_putchar para imprimir el carácter actual.
  5. Al final, llama a va_end para limpiar los recursos de va_list.
  6. Devuelve el número total de caracteres impresos.

Función ft_format

Esta es una función estática que se encarga de procesar el especificador de formato y determinar qué función auxiliar debe ser llamada (como ft_putstr, ft_putnbr, etc.).

static int ft_format(const char *format, va_list args)

Parámetros:

  • const char *format: El especificador de formato, como 'c' o 'd'.
  • va_list args: La lista de argumentos que contiene los valores a imprimir.

Funcionamiento:

  1. Compara el carácter de formato actual con los especificadores válidos (c, s, p, d, i, u, x, X, %).
  2. Según el formato, llama a la función auxiliar correspondiente (como ft_putchar o ft_putstr).
  3. Si se encuentra un especificador desconocido, devuelve -1 indicando un error.

Resumen

La función ft_printf maneja la impresión formateada de múltiples tipos de datos, y utiliza una lista variable de argumentos (va_list) para lograr una flexibilidad similar a la de la función estándar printf. La función auxiliar ft_format procesa los especificadores de formato para determinar cómo manejar cada tipo de dato.

Clone this wiki locally