From dabbfa7a35d4c4e7be48a1ce1540fb30ebba31d5 Mon Sep 17 00:00:00 2001 From: David GAILLETON Date: Mon, 17 Nov 2025 12:40:49 +0100 Subject: [PATCH] Mandatory finished --- Makefile | 21 ++++++--- include/ft_printf.h | 11 ++++- {42-libft => libft}/.gitignore | 0 {42-libft => libft}/Makefile | 2 +- {42-libft => libft}/ft_atoi.c | 0 {42-libft => libft}/ft_bzero.c | 0 {42-libft => libft}/ft_calloc.c | 0 {42-libft => libft}/ft_isalnum.c | 0 {42-libft => libft}/ft_isalpha.c | 0 {42-libft => libft}/ft_isascii.c | 0 {42-libft => libft}/ft_isdigit.c | 0 {42-libft => libft}/ft_isprint.c | 0 {42-libft => libft}/ft_itoa.c | 0 {42-libft => libft}/ft_lstadd_back_bonus.c | 0 {42-libft => libft}/ft_lstadd_front_bonus.c | 0 {42-libft => libft}/ft_lstclear_bonus.c | 0 {42-libft => libft}/ft_lstdelone_bonus.c | 0 {42-libft => libft}/ft_lstiter_bonus.c | 0 {42-libft => libft}/ft_lstlast_bonus.c | 0 {42-libft => libft}/ft_lstmap_bonus.c | 0 {42-libft => libft}/ft_lstnew_bonus.c | 0 {42-libft => libft}/ft_lstsize_bonus.c | 0 {42-libft => libft}/ft_memchr.c | 0 {42-libft => libft}/ft_memcmp.c | 0 {42-libft => libft}/ft_memcpy.c | 0 {42-libft => libft}/ft_memmove.c | 0 {42-libft => libft}/ft_memset.c | 0 {42-libft => libft}/ft_putchar_fd.c | 0 {42-libft => libft}/ft_putendl_fd.c | 0 {42-libft => libft}/ft_putnbr_fd.c | 0 {42-libft => libft}/ft_putstr_fd.c | 0 {42-libft => libft}/ft_split.c | 0 {42-libft => libft}/ft_strchr.c | 0 {42-libft => libft}/ft_strdup.c | 0 {42-libft => libft}/ft_striteri.c | 0 {42-libft => libft}/ft_strjoin.c | 0 {42-libft => libft}/ft_strlcat.c | 0 {42-libft => libft}/ft_strlcpy.c | 0 {42-libft => libft}/ft_strlen.c | 0 {42-libft => libft}/ft_strmapi.c | 0 {42-libft => libft}/ft_strncmp.c | 0 {42-libft => libft}/ft_strnstr.c | 0 {42-libft => libft}/ft_strrchr.c | 0 {42-libft => libft}/ft_strtrim.c | 0 {42-libft => libft}/ft_substr.c | 0 {42-libft => libft}/ft_tolower.c | 0 {42-libft => libft}/ft_toupper.c | 0 {42-libft => libft}/libft.h | 0 libftprintf.a | Bin 0 -> 68864 bytes src/ft_printf.c | 45 +++++++++++++++++++- src/ft_printf.d | 2 + src/ft_printf.o | Bin 0 -> 2968 bytes src/ft_putnbr_base.c | 24 +++++++++++ src/ft_putnbr_base.d | 2 + src/ft_putnbr_base.o | Bin 0 -> 1512 bytes src/print_char.c | 18 ++++++++ src/print_char.d | 1 + src/print_char.o | Bin 0 -> 1384 bytes src/print_hex.c | 25 +++++++++++ src/print_hex.d | 2 + src/print_hex.o | Bin 0 -> 1752 bytes src/print_number.c | 26 +++++++++++ src/print_number.d | 2 + src/print_number.o | Bin 0 -> 1808 bytes src/print_pointer.c | 20 +++++++++ src/print_pointer.d | 4 ++ src/print_pointer.o | Bin 0 -> 1648 bytes src/print_str.c | 19 +++++++++ src/print_str.d | 2 + src/print_str.o | Bin 0 -> 1448 bytes src/print_unsigned.c | 21 +++++++++ src/print_unsigned.d | 2 + src/print_unsigned.o | Bin 0 -> 1648 bytes 73 files changed, 238 insertions(+), 11 deletions(-) rename {42-libft => libft}/.gitignore (100%) rename {42-libft => libft}/Makefile (96%) rename {42-libft => libft}/ft_atoi.c (100%) rename {42-libft => libft}/ft_bzero.c (100%) rename {42-libft => libft}/ft_calloc.c (100%) rename {42-libft => libft}/ft_isalnum.c (100%) rename {42-libft => libft}/ft_isalpha.c (100%) rename {42-libft => libft}/ft_isascii.c (100%) rename {42-libft => libft}/ft_isdigit.c (100%) rename {42-libft => libft}/ft_isprint.c (100%) rename {42-libft => libft}/ft_itoa.c (100%) rename {42-libft => libft}/ft_lstadd_back_bonus.c (100%) rename {42-libft => libft}/ft_lstadd_front_bonus.c (100%) rename {42-libft => libft}/ft_lstclear_bonus.c (100%) rename {42-libft => libft}/ft_lstdelone_bonus.c (100%) rename {42-libft => libft}/ft_lstiter_bonus.c (100%) rename {42-libft => libft}/ft_lstlast_bonus.c (100%) rename {42-libft => libft}/ft_lstmap_bonus.c (100%) rename {42-libft => libft}/ft_lstnew_bonus.c (100%) rename {42-libft => libft}/ft_lstsize_bonus.c (100%) rename {42-libft => libft}/ft_memchr.c (100%) rename {42-libft => libft}/ft_memcmp.c (100%) rename {42-libft => libft}/ft_memcpy.c (100%) rename {42-libft => libft}/ft_memmove.c (100%) rename {42-libft => libft}/ft_memset.c (100%) rename {42-libft => libft}/ft_putchar_fd.c (100%) rename {42-libft => libft}/ft_putendl_fd.c (100%) rename {42-libft => libft}/ft_putnbr_fd.c (100%) rename {42-libft => libft}/ft_putstr_fd.c (100%) rename {42-libft => libft}/ft_split.c (100%) rename {42-libft => libft}/ft_strchr.c (100%) rename {42-libft => libft}/ft_strdup.c (100%) rename {42-libft => libft}/ft_striteri.c (100%) rename {42-libft => libft}/ft_strjoin.c (100%) rename {42-libft => libft}/ft_strlcat.c (100%) rename {42-libft => libft}/ft_strlcpy.c (100%) rename {42-libft => libft}/ft_strlen.c (100%) rename {42-libft => libft}/ft_strmapi.c (100%) rename {42-libft => libft}/ft_strncmp.c (100%) rename {42-libft => libft}/ft_strnstr.c (100%) rename {42-libft => libft}/ft_strrchr.c (100%) rename {42-libft => libft}/ft_strtrim.c (100%) rename {42-libft => libft}/ft_substr.c (100%) rename {42-libft => libft}/ft_tolower.c (100%) rename {42-libft => libft}/ft_toupper.c (100%) rename {42-libft => libft}/libft.h (100%) create mode 100644 libftprintf.a create mode 100644 src/ft_printf.d create mode 100644 src/ft_printf.o create mode 100644 src/ft_putnbr_base.c create mode 100644 src/ft_putnbr_base.d create mode 100644 src/ft_putnbr_base.o create mode 100644 src/print_char.c create mode 100644 src/print_char.d create mode 100644 src/print_char.o create mode 100644 src/print_hex.c create mode 100644 src/print_hex.d create mode 100644 src/print_hex.o create mode 100644 src/print_number.c create mode 100644 src/print_number.d create mode 100644 src/print_number.o create mode 100644 src/print_pointer.c create mode 100644 src/print_pointer.d create mode 100644 src/print_pointer.o create mode 100644 src/print_str.c create mode 100644 src/print_str.d create mode 100644 src/print_str.o create mode 100644 src/print_unsigned.c create mode 100644 src/print_unsigned.d create mode 100644 src/print_unsigned.o diff --git a/Makefile b/Makefile index 8f1f495..b51ec84 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,13 @@ INC_DIR= include LIBFT_DIR= libft SRC= $(SRC_DIR)/ft_printf.c \ + $(SRC_DIR)/ft_putnbr_base.c \ + $(SRC_DIR)/print_char.c \ + $(SRC_DIR)/print_hex.c \ + $(SRC_DIR)/print_number.c \ + $(SRC_DIR)/print_pointer.c \ + $(SRC_DIR)/print_str.c \ + $(SRC_DIR)/print_unsigned.c \ OBJ= $(SRC:.c=.o) DEP= $(SRC:.c=.d) @@ -16,20 +23,20 @@ AR= ar rcs all: $(NAME) $(NAME): $(OBJ) - @$(MAKE) -C $(LIBFT_DIR) - @cp $(LIBFT_DIR)/libft.a $(NAME) - @$(AR) $(NAME) $(OBJ) + $(MAKE) -C $(LIBFT_DIR) + cp $(LIBFT_DIR)/libft.a $(NAME) + $(AR) $(NAME) $(OBJ) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ clean: - @rm -f $(OBJ) $(DEP) - @$(MAKE) -C $(LIBFT_DIR) clean + rm -f $(OBJ) $(DEP) + $(MAKE) -C $(LIBFT_DIR) clean fclean: clean - @rm -f $(NAME) - @$(MAKE) -C $(LIBFT_DIR) fclean + rm -f $(NAME) + $(MAKE) -C $(LIBFT_DIR) fclean re: fclean all diff --git a/include/ft_printf.h b/include/ft_printf.h index a789433..7e607aa 100644 --- a/include/ft_printf.h +++ b/include/ft_printf.h @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 10:52:23 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 11:25:46 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:34:18 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -15,4 +15,13 @@ int ft_printf(const char *first_arg, ...); +int ft_putnbr_base(unsigned long long nbr, char *base, int base_size); + +int print_char(char c); +int print_str(char *str); +int print_pointer(unsigned long long p); +int print_number(int nbr); +int print_unsigned(unsigned int nbr); +int print_hex(unsigned long long p, int upper); + #endif diff --git a/42-libft/.gitignore b/libft/.gitignore similarity index 100% rename from 42-libft/.gitignore rename to libft/.gitignore diff --git a/42-libft/Makefile b/libft/Makefile similarity index 96% rename from 42-libft/Makefile rename to libft/Makefile index 45037cf..0229cd2 100644 --- a/42-libft/Makefile +++ b/libft/Makefile @@ -71,7 +71,7 @@ ALL_DEP= $(DEP) $(BONUS_DEP) %.o: %.c - $(CC) -MMD -MP -o $@ -c $< $(CFLAGS) -I$(HEADER) + $(CC) -MMD -MP -o $@ -c $< $(CFLAGS) -I. all: $(NAME) diff --git a/42-libft/ft_atoi.c b/libft/ft_atoi.c similarity index 100% rename from 42-libft/ft_atoi.c rename to libft/ft_atoi.c diff --git a/42-libft/ft_bzero.c b/libft/ft_bzero.c similarity index 100% rename from 42-libft/ft_bzero.c rename to libft/ft_bzero.c diff --git a/42-libft/ft_calloc.c b/libft/ft_calloc.c similarity index 100% rename from 42-libft/ft_calloc.c rename to libft/ft_calloc.c diff --git a/42-libft/ft_isalnum.c b/libft/ft_isalnum.c similarity index 100% rename from 42-libft/ft_isalnum.c rename to libft/ft_isalnum.c diff --git a/42-libft/ft_isalpha.c b/libft/ft_isalpha.c similarity index 100% rename from 42-libft/ft_isalpha.c rename to libft/ft_isalpha.c diff --git a/42-libft/ft_isascii.c b/libft/ft_isascii.c similarity index 100% rename from 42-libft/ft_isascii.c rename to libft/ft_isascii.c diff --git a/42-libft/ft_isdigit.c b/libft/ft_isdigit.c similarity index 100% rename from 42-libft/ft_isdigit.c rename to libft/ft_isdigit.c diff --git a/42-libft/ft_isprint.c b/libft/ft_isprint.c similarity index 100% rename from 42-libft/ft_isprint.c rename to libft/ft_isprint.c diff --git a/42-libft/ft_itoa.c b/libft/ft_itoa.c similarity index 100% rename from 42-libft/ft_itoa.c rename to libft/ft_itoa.c diff --git a/42-libft/ft_lstadd_back_bonus.c b/libft/ft_lstadd_back_bonus.c similarity index 100% rename from 42-libft/ft_lstadd_back_bonus.c rename to libft/ft_lstadd_back_bonus.c diff --git a/42-libft/ft_lstadd_front_bonus.c b/libft/ft_lstadd_front_bonus.c similarity index 100% rename from 42-libft/ft_lstadd_front_bonus.c rename to libft/ft_lstadd_front_bonus.c diff --git a/42-libft/ft_lstclear_bonus.c b/libft/ft_lstclear_bonus.c similarity index 100% rename from 42-libft/ft_lstclear_bonus.c rename to libft/ft_lstclear_bonus.c diff --git a/42-libft/ft_lstdelone_bonus.c b/libft/ft_lstdelone_bonus.c similarity index 100% rename from 42-libft/ft_lstdelone_bonus.c rename to libft/ft_lstdelone_bonus.c diff --git a/42-libft/ft_lstiter_bonus.c b/libft/ft_lstiter_bonus.c similarity index 100% rename from 42-libft/ft_lstiter_bonus.c rename to libft/ft_lstiter_bonus.c diff --git a/42-libft/ft_lstlast_bonus.c b/libft/ft_lstlast_bonus.c similarity index 100% rename from 42-libft/ft_lstlast_bonus.c rename to libft/ft_lstlast_bonus.c diff --git a/42-libft/ft_lstmap_bonus.c b/libft/ft_lstmap_bonus.c similarity index 100% rename from 42-libft/ft_lstmap_bonus.c rename to libft/ft_lstmap_bonus.c diff --git a/42-libft/ft_lstnew_bonus.c b/libft/ft_lstnew_bonus.c similarity index 100% rename from 42-libft/ft_lstnew_bonus.c rename to libft/ft_lstnew_bonus.c diff --git a/42-libft/ft_lstsize_bonus.c b/libft/ft_lstsize_bonus.c similarity index 100% rename from 42-libft/ft_lstsize_bonus.c rename to libft/ft_lstsize_bonus.c diff --git a/42-libft/ft_memchr.c b/libft/ft_memchr.c similarity index 100% rename from 42-libft/ft_memchr.c rename to libft/ft_memchr.c diff --git a/42-libft/ft_memcmp.c b/libft/ft_memcmp.c similarity index 100% rename from 42-libft/ft_memcmp.c rename to libft/ft_memcmp.c diff --git a/42-libft/ft_memcpy.c b/libft/ft_memcpy.c similarity index 100% rename from 42-libft/ft_memcpy.c rename to libft/ft_memcpy.c diff --git a/42-libft/ft_memmove.c b/libft/ft_memmove.c similarity index 100% rename from 42-libft/ft_memmove.c rename to libft/ft_memmove.c diff --git a/42-libft/ft_memset.c b/libft/ft_memset.c similarity index 100% rename from 42-libft/ft_memset.c rename to libft/ft_memset.c diff --git a/42-libft/ft_putchar_fd.c b/libft/ft_putchar_fd.c similarity index 100% rename from 42-libft/ft_putchar_fd.c rename to libft/ft_putchar_fd.c diff --git a/42-libft/ft_putendl_fd.c b/libft/ft_putendl_fd.c similarity index 100% rename from 42-libft/ft_putendl_fd.c rename to libft/ft_putendl_fd.c diff --git a/42-libft/ft_putnbr_fd.c b/libft/ft_putnbr_fd.c similarity index 100% rename from 42-libft/ft_putnbr_fd.c rename to libft/ft_putnbr_fd.c diff --git a/42-libft/ft_putstr_fd.c b/libft/ft_putstr_fd.c similarity index 100% rename from 42-libft/ft_putstr_fd.c rename to libft/ft_putstr_fd.c diff --git a/42-libft/ft_split.c b/libft/ft_split.c similarity index 100% rename from 42-libft/ft_split.c rename to libft/ft_split.c diff --git a/42-libft/ft_strchr.c b/libft/ft_strchr.c similarity index 100% rename from 42-libft/ft_strchr.c rename to libft/ft_strchr.c diff --git a/42-libft/ft_strdup.c b/libft/ft_strdup.c similarity index 100% rename from 42-libft/ft_strdup.c rename to libft/ft_strdup.c diff --git a/42-libft/ft_striteri.c b/libft/ft_striteri.c similarity index 100% rename from 42-libft/ft_striteri.c rename to libft/ft_striteri.c diff --git a/42-libft/ft_strjoin.c b/libft/ft_strjoin.c similarity index 100% rename from 42-libft/ft_strjoin.c rename to libft/ft_strjoin.c diff --git a/42-libft/ft_strlcat.c b/libft/ft_strlcat.c similarity index 100% rename from 42-libft/ft_strlcat.c rename to libft/ft_strlcat.c diff --git a/42-libft/ft_strlcpy.c b/libft/ft_strlcpy.c similarity index 100% rename from 42-libft/ft_strlcpy.c rename to libft/ft_strlcpy.c diff --git a/42-libft/ft_strlen.c b/libft/ft_strlen.c similarity index 100% rename from 42-libft/ft_strlen.c rename to libft/ft_strlen.c diff --git a/42-libft/ft_strmapi.c b/libft/ft_strmapi.c similarity index 100% rename from 42-libft/ft_strmapi.c rename to libft/ft_strmapi.c diff --git a/42-libft/ft_strncmp.c b/libft/ft_strncmp.c similarity index 100% rename from 42-libft/ft_strncmp.c rename to libft/ft_strncmp.c diff --git a/42-libft/ft_strnstr.c b/libft/ft_strnstr.c similarity index 100% rename from 42-libft/ft_strnstr.c rename to libft/ft_strnstr.c diff --git a/42-libft/ft_strrchr.c b/libft/ft_strrchr.c similarity index 100% rename from 42-libft/ft_strrchr.c rename to libft/ft_strrchr.c diff --git a/42-libft/ft_strtrim.c b/libft/ft_strtrim.c similarity index 100% rename from 42-libft/ft_strtrim.c rename to libft/ft_strtrim.c diff --git a/42-libft/ft_substr.c b/libft/ft_substr.c similarity index 100% rename from 42-libft/ft_substr.c rename to libft/ft_substr.c diff --git a/42-libft/ft_tolower.c b/libft/ft_tolower.c similarity index 100% rename from 42-libft/ft_tolower.c rename to libft/ft_tolower.c diff --git a/42-libft/ft_toupper.c b/libft/ft_toupper.c similarity index 100% rename from 42-libft/ft_toupper.c rename to libft/ft_toupper.c diff --git a/42-libft/libft.h b/libft/libft.h similarity index 100% rename from 42-libft/libft.h rename to libft/libft.h diff --git a/libftprintf.a b/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..1ccf1e31b610913f0c51ea6ac41eb066ca65a945 GIT binary patch literal 68864 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 10:54:03 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 11:26:09 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:35:20 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include +#include +#include "../include/ft_printf.h" + +static int ft_print_arg(char c, va_list args) +{ + if (c == 'c') + return (print_char(va_arg(args, int))); + else if (c == 's') + return (print_str(va_arg(args, char *))); + else if (c == 'p') + return (print_pointer(va_arg(args, unsigned long long))); + else if (c == 'd' || c == 'i') + return (print_number(va_arg(args, int))); + else if (c == 'u') + return (print_unsigned(va_arg(args, unsigned int))); + else if (c == 'x') + return (print_hex(va_arg(args, unsigned int), 0)); + else if (c == 'X') + return (print_hex(va_arg(args, unsigned int), 1)); + else if (c == '%') + return (print_char('%')); + return (0); +} int ft_printf(const char *first_arg, ...) { - return (1); + va_list args; + int nb_print; + int i; + + nb_print = 0; + va_start(args, first_arg); + i = 0; + while (first_arg[i]) + { + if (first_arg[i] == '%') + { + i++; + nb_print += ft_print_arg(first_arg[i], args); + } + else + nb_print += write(1, &first_arg[i], 1); + i++; + } + return (nb_print); } diff --git a/src/ft_printf.d b/src/ft_printf.d new file mode 100644 index 0000000..304d2a0 --- /dev/null +++ b/src/ft_printf.d @@ -0,0 +1,2 @@ +src/ft_printf.o: src/ft_printf.c src/../include/ft_printf.h +src/../include/ft_printf.h: diff --git a/src/ft_printf.o b/src/ft_printf.o new file mode 100644 index 0000000000000000000000000000000000000000..be65ec111c9202890e61116581cc0440bfe6baec GIT binary patch literal 2968 zcmb_d&x;#%6n~Tb(O7q#SQe~SFbB78uueCN3$;`kSz^B|RjPGmJ(M^}CY#VE8|Md2 zmBp3ph{F)Y*2*WqXLX9v0$z-`+VQ~ zyqE9y&E%`xx%U#11VSWu2L_%%0oIcPTjiz-voHf|%>A3S9;MvJ%(Z*p<_@;E4vO~2 z%**vWXgxl8x5rHTCmuC++q6F! zPq&?$ba~>e_f6zpA0Ic3X~_Koa?jf{x8@P#BeOqsgNon1%_sEhM?D_>+tGf%&)lEZ zx!V1Vt9Av|IoD}$)o!BN=~!twliQXv?_ZNMYd^@Di`V6h-jOr4Jvn3Fmor8^Cnu06xPnAnCqNEm$jYqq+CZu)pbtblhPi3hYydt ztcb6P!`qei-??}S~@NHr3T`J4mzi?0r2mQXp8`@tUlJSdwe1F^`%}>nz z-Q(fXp3C)rR@>>w&IPRHr!a4qPN2kIpW`QDO>xG%x8dx{%IWmN*$>t->Flzyq-4`e zi%ZMdY<7u$FTfV>5@6*D&~H#A%WI zh#w1h_qo(JiIv&uiSH8_!uQVbU4Shj5BHlA?T-=)orHh*?Zjgy!Y&6pvuNUP2m#&; zdN1Khh3LSbc^!tI9D%<*0$&}0e>ws$B7Ow>6#eltL98|+-W-8L*~&MJYTYU;#n8@c z#s+XSU#w_GV49Y&8k?A)3$Je13ZY}y&FV&7F9kUjy&1BW;fhhUbjasTODkSN>Pz{u zR=td!0TlStpC_6h9DXjpMsS)jfzJh3M6uHm{PPHYD1zUK;503Q=QWx&6yl*76?kg| zz8k@#eRd~^#pihzwcvS?f>21!;1YNmZ4#mjD7mll=KvS?3yOKQW@!b~mf`D)unhgO zrdWE@0;Qx`8Yl(R1f{rHtLb&b>YJ9X;Jf(-KlZ@isM|`z*lg&AbrlrOpjYx`L#ydQ z2meo{F`bT_?j|Z~;Jgx?i`WaUN4RhdEecUX#5e8)g!Fenau^roiZ8%X0#T0RB0RVj zg1F>kbp;-;e*!m%^J(+5m`j}W#}O4#UwrGto~SSMY1|ODh#~#u6ZTKv6Po|%Y*GGp zkRR_$oFB!I6mU`fc>eVuf1QFN63@SgdlafhV#vHfO`(YTbbpj9^2PlPt4(=H`Us$$ r3J! +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:16:44 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:17:14 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft/libft.h" + +int ft_putnbr_base(unsigned long long nbr, char *base, int base_size) +{ + int i; + + if (nbr == 0) + return (0); + i = 1 + ft_putnbr_base(nbr / base_size, base, base_size); + ft_putchar_fd(base[nbr % base_size], 1); + return (i); +} diff --git a/src/ft_putnbr_base.d b/src/ft_putnbr_base.d new file mode 100644 index 0000000..2c26120 --- /dev/null +++ b/src/ft_putnbr_base.d @@ -0,0 +1,2 @@ +src/ft_putnbr_base.o: src/ft_putnbr_base.c src/../libft/libft.h +src/../libft/libft.h: diff --git a/src/ft_putnbr_base.o b/src/ft_putnbr_base.o new file mode 100644 index 0000000000000000000000000000000000000000..a0df1b2dd6b7abace4cc277722fd36e5e3be4f7e GIT binary patch literal 1512 zcmbtS&ubG=5T4z}#viSX#e+}}>qQjwnGF<54@oC{XEbRC8>3-r}EQ_4s``55u zD6Cpn*6$UsTJ|!_G26;zbIZ1E=OBe#3;hH-62JtbN0|DLMxs8CJu>6*eK0y1V`(mZ z@+p!pB1TTOM?W{uW}cXZ`B`%p83ar>nv;U>$J4qqzi%<_E@HZ<;qffQE}>_}v~gAq zORaX;DEp$e5eYft(8~k6eP)@s;O&pV#^NsB<;nTiut#V9tKLQ}ovH4LX>4k~dfN(D^Hp5MhRPL(VqY(`JjuO-y)^p78^XGe zPL{lv`hKG>Kp7J{GpWzWK`V+VV^aSB@oD?BrcqqZ?@)nu2Ay`4 f)Sr?#h6(FQ{f!Cq&u@JW`^nvtWJTV8^Dp{eRy?5C literal 0 HcmV?d00001 diff --git a/src/print_char.c b/src/print_char.c new file mode 100644 index 0000000..fa3983d --- /dev/null +++ b/src/print_char.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print_char.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 11:56:36 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:01:47 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include + +int print_char(char c) +{ + return (write(1, &c, 1)); +} diff --git a/src/print_char.d b/src/print_char.d new file mode 100644 index 0000000..e7d56d7 --- /dev/null +++ b/src/print_char.d @@ -0,0 +1 @@ +src/print_char.o: src/print_char.c diff --git a/src/print_char.o b/src/print_char.o new file mode 100644 index 0000000000000000000000000000000000000000..2a74588030cfd2806f933bc75e69eccf2e22365a GIT binary patch literal 1384 zcmb_bOG_g`5UxpltuLZ@a8YnBih?#yK#&|HONa&$4}wS0NgR!s7n2sF7ZG7e4#NI~ z{Tbp#VPU}^B6#qiHxB`=N~$v2#EV$a^HqKIRaZ~f%vo}6Ib>NNX2B8!k+1;Mp}>zf z+&BzCKWwII_o<7=NbRMXtfwxM^=qn5)&AcQK9KV6AFL!2F?)JteRIZk7F1L@c62_v z;5bf{1Y{k!Y+RkVPzNEfZi$n#SVla8IWp^X1FTBK8td=w`Gewdaz$^I&1-+fgy1vRl5Wum2pgn*I zR?<7us=qePW}dG9-3S0w`6RF1G@|yKm=(|Wa<0-|MT6RPwF@d;E`!Px^Lej;T%o8v zg?Btx)^6sIXW3>PP literal 0 HcmV?d00001 diff --git a/src/print_hex.c b/src/print_hex.c new file mode 100644 index 0000000..73674c4 --- /dev/null +++ b/src/print_hex.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print_hex.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:06:35 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:38:35 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../include/ft_printf.h" +#include + +int print_hex(unsigned long long nbr, int upper) +{ + if (nbr == 0) + return (write(1, "0", 1)); + if (upper) + return (ft_putnbr_base(nbr, "0123456789ABCDEF", 16)); + else + return (ft_putnbr_base(nbr, "0123456789abcdef", 16)); + +} diff --git a/src/print_hex.d b/src/print_hex.d new file mode 100644 index 0000000..a026a93 --- /dev/null +++ b/src/print_hex.d @@ -0,0 +1,2 @@ +src/print_hex.o: src/print_hex.c src/../include/ft_printf.h +src/../include/ft_printf.h: diff --git a/src/print_hex.o b/src/print_hex.o new file mode 100644 index 0000000000000000000000000000000000000000..ab1b04b00a6b82d4d2c0a707f968ea4f1c0f6fbb GIT binary patch literal 1752 zcmbVL&1(};5T8wITd}E81eI9GL8M|`ve9VTLrELc?m>De6urewx-qrQhr2JB3c*7_ zSftQD!>iX`6a+sm-n@Ge1ich`$U&?#**D4NvAuNQWoCZ!o0*rHx33BhS0b7QEE+7r z&|?(fadc?s`eqKMAqE?!_tWhDiJM-h=e3T^Zl?#Wgt>QyI0sb8^gg{O{fm&_i`~u< zh#7M)My~m$&^w5e;e9i`&prjSPYizjn1Ym%zH>Ko?|ycEX*vI(uo3{QQhC#^0IcTo z3(48lwT+ueBcrEvBbiR6GlpTLsVm7Co+KW+C-NWy+6Th;ziWzr31cMM%XQG&aV;@5 zF}aWAYlzVyc}_n|)A84ld~7_jgA4+~h5C%a;c-|rI=IDXG}^!IC`OaI7~uEsfY@a` zG+0$;5D3Ge>1@?Sv1+&V^3aAC&X%yDB8ttHsF$2#$#U&}$*Zz(1T{U4zsJ7Zk~qzh zX3O}3#F_t3^49|V@c{pk!apzl?GyOP0H1mcM0a;v5PrW$*vYFj#cyLGw6Rx zBZ+zRMrbBM$w`Oz%rSnq>?hEm9po60IxB~>Fa2|6^Y-Fc;K_|N8ZV}s?`2- zNT8ah%{MTYYL4s@eeQo9?Vzar=P^iFDo8^6yY%^+7Ud901%prXkbON@@UB}o2 z9`*h`nWNr|=g%ddp+Pm({8`y3%S5Twe0qgp`~M;f@}6n`XYp`8<6*t2)f3tOEjcJt lc&Lw>Pc_xuBLtJOKfRBj$g%_I0$O4DKV-fbFnvSK{||++ugd@c literal 0 HcmV?d00001 diff --git a/src/print_number.c b/src/print_number.c new file mode 100644 index 0000000..3a95bed --- /dev/null +++ b/src/print_number.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print_number.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:26:23 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:31:22 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../include/ft_printf.h" +#include + +int print_number(int nbr) +{ + if (nbr == 0) + return (write(1, "0", 1)); + if (nbr < 0) + { + write(1, "-", 1); + return (1 + ft_putnbr_base(nbr * -1, "0123456789", 10)); + } + return (ft_putnbr_base(nbr, "0123456789", 10)); +} diff --git a/src/print_number.d b/src/print_number.d new file mode 100644 index 0000000..9dc87a3 --- /dev/null +++ b/src/print_number.d @@ -0,0 +1,2 @@ +src/print_number.o: src/print_number.c src/../include/ft_printf.h +src/../include/ft_printf.h: diff --git a/src/print_number.o b/src/print_number.o new file mode 100644 index 0000000000000000000000000000000000000000..bac453004bcbd6f84c913118d6fd79a608bcf66a GIT binary patch literal 1808 zcmbVM&ubG=5S~qHTeYcCJQPx4L68dek&Q;Hh(trp9>hZ-SK}sbZPjeT?u#};@ers4 zE%fN0;NQ@T0YMSOv*1|}>cvw%1nbP^O}cq(E**F~Gv9pkW8Ztbua@uKO&A8S7;p;? zJw^d`l81I7Gz%~bDJa|BpLXYWy1Uu$Z1$m*vA2&=c$bRU-A^A#{~~1X0TJ3a#}eKw z_xHcs@9gaq(RWYa!|r~wyPw1KPS4nzN6J{jmycOkgshdjd?kPN+R}A^Qn7f$TqxZy zUo@?}$O+5LWpjDUvT^_uSlz@$!y*F`VDt#%cQ-WuEXGKTmn&dwq>aqX)btLL=Mket z@|GUAXVY7WVrnw+8W{w{3-y_RKL>Hq}SxRJt{DubU|%SPx&WNQ!ZceIfc`?6CU|pgpsc*t}DI& zB_vSIqvl(fOEpK%5`FG}3hk)q{qeUE=4YcMw0|g{zjY3CKI=OeV4FFl_oGh4*10Pf zo5H2f|5xScbMgLj$tP$~O+9}>HCke#(t1AK!npJ21L1R~^FNM@^BIrpO|2fP{_n{_ nnZZSU^n9wRpFKh_tzHO!-6NvP4zbf{#pTZ_P!5>`L(l&Y&RV +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:19:16 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:25:20 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft/libft.h" +#include "../include/ft_printf.h" + +int print_pointer(unsigned long long p) +{ + ft_putstr_fd("0x", 1); + return (2 + ft_putnbr_base(p, "0123456789abcdef", 16)); +} diff --git a/src/print_pointer.d b/src/print_pointer.d new file mode 100644 index 0000000..fe93b16 --- /dev/null +++ b/src/print_pointer.d @@ -0,0 +1,4 @@ +src/print_pointer.o: src/print_pointer.c src/../libft/libft.h \ + src/../include/ft_printf.h +src/../libft/libft.h: +src/../include/ft_printf.h: diff --git a/src/print_pointer.o b/src/print_pointer.o new file mode 100644 index 0000000000000000000000000000000000000000..bbabbfff1023c2e11291aa241447e11336e22d57 GIT binary patch literal 1648 zcmbVM&1(};5TD)DR3d0#op4SaMC&b~{vBn)cSCnecg_4|^hr2hrH_^~I^EAS`kZemp7Ke@B9gtX^n4IF zTxNIJi-TvLkU?L9XnWEF;U@`*ILbgP>UM(=V__r%fp6eOBE8mAg}1|9(Tk&A5X(KR zp-#b0vlDw=^}*u-PUcuxMsI+=F)xk+Y&pj7lJO!sbf*pzY}Ms#DSQ?!)$&_hQ2Z6e z)2{Nep9eW#KcC(a^*m|4jkVNsVwZ^bQAzmkEkju@`(#&9slG}eC-0Qc?~X$}Kim5l zV4riye#nEIujg)HYz9@IpX>Fx`2M-&6LhGjUjJPstSHMyucud7wEr#DkoQdcKZDBk x%om+aXDz4?eNO;o7M0G?>#3){d!%5f>hBQ9iK530{og98@2mOcI5Ttf`hO@Sm)rmV literal 0 HcmV?d00001 diff --git a/src/print_str.c b/src/print_str.c new file mode 100644 index 0000000..4f4f8ea --- /dev/null +++ b/src/print_str.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print_str.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:02:03 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:03:27 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft/libft.h" + +int print_str(char *str) +{ + ft_putstr_fd(str, 1); + return (ft_strlen(str)); +} diff --git a/src/print_str.d b/src/print_str.d new file mode 100644 index 0000000..f7d063a --- /dev/null +++ b/src/print_str.d @@ -0,0 +1,2 @@ +src/print_str.o: src/print_str.c src/../libft/libft.h +src/../libft/libft.h: diff --git a/src/print_str.o b/src/print_str.o new file mode 100644 index 0000000000000000000000000000000000000000..c9fe064f70e066efb4c6475aae10a1f93883f2c8 GIT binary patch literal 1448 zcmbtSK}#D^5T1=zYimkc3RUc34{d3wKHPvH9!eyrOA!wRk0os4rV*1(*nNT)iiLtU z^x{wP=t%?*;=kxc@X$lO3;iFaJyf6?vJJ32^G8D^DEL2A^749R?6iC`}NA&`WxGsQ$^+2 z#o6MV<2XftVU*i=?%_cN8x1n=$8{5kaPj4u^%{;9yvqAtB?Y6X6MX$ryHw1-#(^J~t z(V#Xw?SZOB5vW?b)$#-6g0}V*?r0{`UTurxPrRnL%4t}Fj551PpH~2qi zV>#_;#As9ESl(aK^4~~2g@E3xBn0~-7S3|~06kIiuS_uiiuoaq#cc^Nyg7dw^VIWS z>m976o^nrweUtg}&kHZ}#V=q&uxQ91WP=PgweK-Eis!F?2;=WuW8O>NkJC^^Kt0X+ zV;0PdkiA*|5&1#;`^guTJ< +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/11/17 12:26:23 by dgaillet #+# #+# */ +/* Updated: 2025/11/17 12:34:00 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "../include/ft_printf.h" +#include + +int print_unsigned(unsigned int nbr) +{ + if (nbr == 0) + return (write(1, "0", 1)); + return (ft_putnbr_base(nbr, "0123456789", 10)); +} diff --git a/src/print_unsigned.d b/src/print_unsigned.d new file mode 100644 index 0000000..3e4f9b3 --- /dev/null +++ b/src/print_unsigned.d @@ -0,0 +1,2 @@ +src/print_unsigned.o: src/print_unsigned.c src/../include/ft_printf.h +src/../include/ft_printf.h: diff --git a/src/print_unsigned.o b/src/print_unsigned.o new file mode 100644 index 0000000000000000000000000000000000000000..1ade64e9739c1fa9515692a16187a9d6a568abc0 GIT binary patch literal 1648 zcmbtTOKTHR6h4#G)<;ufaUsUVxbXoxWTLIrg~W#1S%`~5*XbmkKGaOY%nhbOaZwP1 z6x{e9+`5x)6a*g||AkP{h3aws8Mm#(X!Y5?(O`{cei^x+dXO*yxn6+@1cp;{q!E|KA0cpUM}>!-5mVA zll<_y-@NYUB=_}Wk&15V`i+^{n{&5_7Auw8_T|L~%U5i7#wj_jT`HDlT-Pn38W>}< z*{~VwC_~lcI(37fC()(~ zXiZgHZ57s{YR!)W?j`qv@n+e22Yp;*AHbdBj)j*2i2je(&qK_BewxOty@Yr`$&{5>9`pPG#7RTg7&3;gCHX1?5xv;4Mhi88+R(}1Fj@QGs z(~6p{AW~aggHFLlbuIE6c-#Mn%`Gr{yki<=9mxD72W=V!4sb{1Gzni{&Wh$w@rqjc z1kY+7a{-T8rST#iqa}#Xl`QPap^IUTO(()lY=xNsPYr&id^=j7RD;zcd72Qzg zjQO8nlX~Gt?TxK${i1IWFecfsk6DkN=IoiGFS>pfK?<54FsIoYRo~I)R|93=G3);V D+?|z; literal 0 HcmV?d00001