Go to file
2024-10-28 17:35:09 +01:00
inc paco fail 2024-10-28 17:35:09 +01:00
src paco fail 2024-10-28 17:35:09 +01:00
ft_printf.h paco fail 2024-10-28 17:35:09 +01:00
libft.h paco fail 2024-10-28 17:35:09 +01:00
Makefile paco fail 2024-10-28 17:35:09 +01:00
README.md Testing makefile 2024-10-15 12:43:54 +02:00

ft_printf

Mandatory part

Program name: libftprintf.a Turn in files: Makefile, *.h, /.h, *.c, /.c Makefile: NAME, all, clean, fclean, re External functs: malloc, free, write, va_start, va_arg, va_copy, va_end Libft authorized: Yes Description: Write a library that contains ft_printf(), a function that will mimic the original printf()

You have to recode the printf() function from libc.

The prototype of ft_printf() is: int ft_printf(const char *, ...);

Here are the requirements:

• Dont implement the buffer management of the original printf().

• Your function has to handle the following conversions: cspdiuxX%

• Your function will be compared against the original printf().

• You must use the command ar to create your library. Using the libtool command is forbidden.

• Your libftprintf.a has to be created at the root of your repository. 5

%[$][flags][width][.precision][length modifier]conversion

You have to implement the following conversions: • %c Prints a single character. • %s Prints a string (as defined by the common C convention). • %p The void * pointer argument has to be printed in hexadecimal format. • %d Prints a decimal (base 10) number. • %i Prints an integer in base 10. • %u Prints an unsigned decimal (base 10) number. • %x Prints a number in hexadecimal (base 16) lowercase format. • %X Prints a number in hexadecimal (base 16) uppercase format. • %% Prints a percent sign.

Bonus

• Manage any combination of the following flags: -0. and the field minimum width under all conversions. - '-' The converted value is to be left adjusted on the field boundary. (The default is right justification.) The converted value is padded on the right with blanks - '0' The value should be zero padded. For d, i, o, u, x, X, a, A, e, E, f, F, g, and G conversions, the converted value is padded on the left with zeros rather than blanks.

- '.' precision

• Manage all the following flags: # + (Yes, one of them is a space) - '#' For x and X conversions, a nonzero result has the string "0x" (or "0X" for X conversions) prepended to it. - ' ' (a space) A blank should be left before a positive number (or empty string) produced by a signed conversion. - '+' A sign (+ or -) should always be placed before a number produced by a signed conversion.

If you plan to complete the bonus part, think about the implementation of your extra features from the start. This way, you will avoid the pitfalls of a naive approach.