Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/colmiik/ft_printf
A simple recreation of C's printf
https://github.com/colmiik/ft_printf
42school printf
Last synced: about 1 month ago
JSON representation
A simple recreation of C's printf
- Host: GitHub
- URL: https://github.com/colmiik/ft_printf
- Owner: ColmiiK
- Created: 2023-09-20T14:32:20.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-23T10:05:26.000Z (5 months ago)
- Last Synced: 2024-11-08T19:14:06.449Z (3 months ago)
- Topics: 42school, printf
- Language: C
- Homepage:
- Size: 237 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
# Mandatory part
Program name
libftprintf.a
Turn in files
Makefile,*.h
,*/*.h
,*.c
,*/*.c
Makefile
NAME, all, clean, fclean, re
Arguments
stack a: a list of integers
External functions
write()
,malloc()
,free()
,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()
## Observations
You have to recode the `printf()` function from `libc`.
The prototype of ``ft_printf()`` is:
``int ft_printf(const char *, ...);``## Requirements
- Don’t 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 repositoryYou 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 part
You don’t have to do all the bonuses.
## Bonus list:
- Manage any combination of the following flags: `-0.` and the field minimum width
under all conversions.
- Manage all the following flags: `# +` (Yes, one of them is a space)