Este proyecto ha sido creado como parte del currículo de 42 por ceboyero.
ft_printf es una implementación personalizada de la función estándar printf de C. Su objetivo es proporcionar una alternativa funcional que cumpla con las restricciones del currículo de 42, permitiendo el manejo de múltiples especificadores de formato como %c, %s, %d, %i, %u, %x, %X, y %p.
El proyecto busca profundizar en el entendimiento de la manipulación de argumentos variables, el uso de punteros y la gestión de memoria en C.
Para compilar la biblioteca y generar el archivo libftprintf.a, ejecuta el siguiente comando en la raíz del proyecto:
makeEsto generará la biblioteca estática libftprintf.a.
Para usar ft_printf en tu proyecto, incluye el archivo de cabecera ft_printf.h y enlaza la biblioteca estática:
#include "ft_printf.h"
int main(void)
{
ft_printf("Hola, %s!\n", "mundo");
return 0;
}Compila tu programa con:
cc -Wall -Wextra -Werror main.c -L. -lftprintf -o mainPara eliminar los archivos objeto y la biblioteca generada:
make fcleanSe utilizó IA para:
- Generar ejemplos de código y pruebas.
- Mejorar la estructura del código para cumplir con la Norminette.
- Crear este archivo README.md.
- Algoritmo: Se eligió un enfoque recursivo para las conversiones numéricas (
ft_puthex,ft_putin) debido a su simplicidad y claridad. - Estructura de datos: Se utilizó una estructura de argumentos variádicos (
va_list) para manejar múltiples tipos de entrada, siguiendo el estándar deprintf.
ft_printf("Número: %d, Hexadecimal: %x\n", 42, 42);
ft_printf("Puntero: %p\n", &main);Salida esperada:
Número: 42, Hexadecimal: 2a
Puntero: 0x7ffee7c3e8b8