This project is pretty straight forward. We will recode printf. Hopefully we will be able to reuse it in future projects without the fear of being flagged as a cheater. We will mainly learn how to use variadic arguments.
https://www.cprogramming.com/tutorial/printf-format-strings.html
https://blog.aaronballman.com/2012/06/how-variable-argument-lists-work-in-c/
https://stackoverflow.com/questions/38023473/include-first-argument-in-va-list-object
https://wiki.sei.cmu.edu/confluence/display/c/EXP47-C.+Do+not+call+va_arg+with+an+argument+of+the+incorrect+type
https://newbedev.com/char-type-in-va-arg
http://underpop.online.fr/j/java/help/using-flags-in-the-printf-format-string-formatted-output.html.gz
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/va-arg-va-copy-va-end-va-start?view=msvc-170
https://velog.io/@ljiwoo59/ftprintf
https://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/format.html