aboutsummaryrefslogtreecommitdiff
path: root/1-0-ft_printf/subject.es.txt
blob: f1ee40de44f8a6431e8d2f7b0a76b005bfe0623e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Assignment name  : ft_printf
Expected files   : ft_printf.c
Allowed functions: malloc, free, write, va_start, va_arg, va_copy, va_end
--------------------------------------------------------------------------------

Escriba una función que se llame `ft_printf`, que reproducirá una pequeña parte del comportamiento del verdadero printf, con las siguientes limitaciones:


- Sólo gestionará las conversiones : s,d y x
- Debe gestionar el tamaño mínimo de campo. (Nunca probaremos su programa con un tamaño de campo igual a 0)
- Sólo gestionará el flag de precisión `.`.

La función deberá seguir el siguiente prototipo:

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

Antes de empezar, le aconsejamos que lea `man 3 printf` y `man va_arg`.
Le aconsejamos que para probar su programa lo compare con el verdadero printf.

Ejemplos de salida de la función:

call: ft_printf("%10.2s\n", "toto");
out:        to$

call: ft_printf("Magic %s is %5d", "number", 42);
out:Magic number is    42%

call: ft_printf("Hexadecimal for %d is %x\n", 42, 42);
out:Hexadecimal for 42 is 2a$