Go to file
2023-10-26 18:45:58 +02:00
libft updated libft 2023-10-26 18:32:55 +02:00
src updated libft 2023-10-26 18:45:58 +02:00
tests/src updated libft 2023-10-26 18:45:58 +02:00
.gitignore firstcommit 2023-04-15 06:55:45 +02:00
ft_printf.h updated libft 2023-10-26 18:45:58 +02:00
LICENSE firstcommit 2023-04-15 06:55:45 +02:00
Makefile updated libft 2023-10-26 18:45:58 +02:00
printf.pdf firstcommit 2023-04-15 06:55:45 +02:00
Readme.md firstcommit 2023-04-15 06:55:33 +02:00
test.sh firstcommit 2023-04-15 06:55:33 +02:00


This project requires you to write your own Printf
I have implemented these conversions

Conversion Description
% prints percent sign
a prints float in hexadecimal scientific notation
b prints int in binary
c prints char
d prints decimal
e prints float in various special ways
f prints float
g prints float in scientific notation
i prints integer
n prints number of bytes written at that point
o prints unsigned integer
p prints memory address
s prints string
u prints unsigned integer
x prints int in lowercase hexadecimal
X prints int in uppercase hexadecimal

And these flags

Flag Description
# Alternate Form
0 Zero Padding
- Left Adjustment
space Space before positive number
+ + before positive number
1-9 Field Width
. Precision
* variable placeholder


Implement %a correctly

Implement lenght modifiers Lqtjz


plus and space prints an extra space in rare undefined cases
floats lose precision
g printing 1.0000 while it should just print 1
g giving the wrong return value in some cases
e giving the wrong return value in some cases
double check length modifiers "l" "ll" "h" "hh"\


  1. Simply clone or download the repository
  2. Run make in the cloned directory
  3. You can include the libftprintf.a in your own program



  • check for -Wall -Werror -Wextra
  • Add Infinity and NAN tests
  • Harder checking on %n
  • check with 2 conversions 1 correct and the other wrong?
  • add strings with variables without any arguments


  1. Download test.sh and the tests folder to your printf directory
  2. Make the file executable chmod +x test.sh
  3. Run ./test.sh to start the test

This project is part of the studies at 42