minishell/printf/Readme.md
2023-06-06 16:48:34 +02:00

1.9 KiB

Printf

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

Todo

Implement %a correctly

Implement lenght modifiers Lqtjz


Bugs

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"\


Usage

  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

Tester

Todo

  • 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

Usage

  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