From 06e5285a89f92d9b718af1eade4cb11adb70f3a1 Mon Sep 17 00:00:00 2001 From: David GAILLETON Date: Mon, 17 Nov 2025 13:10:57 +0100 Subject: [PATCH] Mandatory tested and finish --- .gitignore | 55 +++++++++++++++++++++ include/ft_printf.h | 6 +-- libftprintf.a | Bin 68864 -> 0 bytes src/ft_printf.c | 20 ++++---- src/ft_printf.d | 2 - src/ft_printf.o | Bin 2968 -> 0 bytes src/ft_putnbr_base.c | 4 +- src/ft_putnbr_base.d | 2 - src/ft_putnbr_base.o | Bin 1512 -> 0 bytes src/print_char.c | 4 +- src/print_char.d | 1 - src/print_char.o | Bin 1384 -> 0 bytes src/print_hex.c | 5 +- src/print_hex.d | 2 - src/print_hex.o | Bin 1752 -> 0 bytes src/print_number.c | 9 ++-- src/print_number.d | 2 - src/print_number.o | Bin 1808 -> 0 bytes src/print_pointer.c | 11 +++-- src/print_pointer.d | 4 -- src/print_pointer.o | Bin 1648 -> 0 bytes src/print_str.c | 9 +++- src/print_str.d | 2 - src/print_str.o | Bin 1448 -> 0 bytes src/print_unsigned.c | 4 +- src/print_unsigned.d | 2 - src/print_unsigned.o | Bin 1648 -> 0 bytes test.c | 114 +++++++++++++++++++++++++++++++++++++++++++ 28 files changed, 211 insertions(+), 47 deletions(-) create mode 100644 .gitignore delete mode 100644 libftprintf.a delete mode 100644 src/ft_printf.d delete mode 100644 src/ft_printf.o delete mode 100644 src/ft_putnbr_base.d delete mode 100644 src/ft_putnbr_base.o delete mode 100644 src/print_char.d delete mode 100644 src/print_char.o delete mode 100644 src/print_hex.d delete mode 100644 src/print_hex.o delete mode 100644 src/print_number.d delete mode 100644 src/print_number.o delete mode 100644 src/print_pointer.d delete mode 100644 src/print_pointer.o delete mode 100644 src/print_str.d delete mode 100644 src/print_str.o delete mode 100644 src/print_unsigned.d delete mode 100644 src/print_unsigned.o create mode 100644 test.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..845cda6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,55 @@ +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# debug information files +*.dwo diff --git a/include/ft_printf.h b/include/ft_printf.h index 7e607aa..0cb500a 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 12:34:18 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:47:41 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -17,11 +17,11 @@ 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_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); +int print_hex(unsigned long long p, int upper); #endif diff --git a/libftprintf.a b/libftprintf.a deleted file mode 100644 index 1ccf1e31b610913f0c51ea6ac41eb066ca65a945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68864 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 10:54:03 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 12:35:20 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:47:03 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include -#include "../include/ft_printf.h" +#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 *))); + return (print_str(va_arg(args, char *))); else if (c == 'p') - return (print_pointer(va_arg(args, unsigned long long))); + return (print_pointer(va_arg(args, unsigned long long))); else if (c == 'd' || c == 'i') - return (print_number(va_arg(args, int))); + return (print_number(va_arg(args, int))); else if (c == 'u') - return (print_unsigned(va_arg(args, unsigned int))); + return (print_unsigned(va_arg(args, unsigned int))); else if (c == 'x') - return (print_hex(va_arg(args, unsigned int), 0)); + return (print_hex(va_arg(args, unsigned int), 0)); else if (c == 'X') - return (print_hex(va_arg(args, unsigned int), 1)); + return (print_hex(va_arg(args, unsigned int), 1)); else if (c == '%') - return (print_char('%')); + return (print_char('%')); return (0); } @@ -48,7 +48,7 @@ int ft_printf(const char *first_arg, ...) { if (first_arg[i] == '%') { - i++; + i++; nb_print += ft_print_arg(first_arg[i], args); } else diff --git a/src/ft_printf.d b/src/ft_printf.d deleted file mode 100644 index 304d2a0..0000000 --- a/src/ft_printf.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index be65ec111c9202890e61116581cc0440bfe6baec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 */ +/* Updated: 2025/11/17 12:43:17 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../libft/libft.h" +#include "libft.h" int ft_putnbr_base(unsigned long long nbr, char *base, int base_size) { diff --git a/src/ft_putnbr_base.d b/src/ft_putnbr_base.d deleted file mode 100644 index 2c26120..0000000 --- a/src/ft_putnbr_base.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index a0df1b2dd6b7abace4cc277722fd36e5e3be4f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/print_char.c b/src/print_char.c index fa3983d..70d8ec3 100644 --- a/src/print_char.c +++ b/src/print_char.c @@ -6,13 +6,13 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 11:56:36 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 12:01:47 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:45:57 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include -int print_char(char c) +int print_char(char c) { return (write(1, &c, 1)); } diff --git a/src/print_char.d b/src/print_char.d deleted file mode 100644 index e7d56d7..0000000 --- a/src/print_char.d +++ /dev/null @@ -1 +0,0 @@ -src/print_char.o: src/print_char.c diff --git a/src/print_char.o b/src/print_char.o deleted file mode 100644 index 2a74588030cfd2806f933bc75e69eccf2e22365a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/print_hex.c b/src/print_hex.c index 73674c4..62c9d40 100644 --- a/src/print_hex.c +++ b/src/print_hex.c @@ -6,11 +6,11 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 12:06:35 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 12:38:35 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:46:47 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../include/ft_printf.h" +#include "ft_printf.h" #include int print_hex(unsigned long long nbr, int upper) @@ -21,5 +21,4 @@ int print_hex(unsigned long long nbr, int 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 deleted file mode 100644 index a026a93..0000000 --- a/src/print_hex.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index ab1b04b00a6b82d4d2c0a707f968ea4f1c0f6fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/print_number.c b/src/print_number.c index 3a95bed..672c1df 100644 --- a/src/print_number.c +++ b/src/print_number.c @@ -6,21 +6,24 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 12:26:23 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 12:31:22 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:56:40 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../include/ft_printf.h" +#include "ft_printf.h" #include int print_number(int nbr) { + unsigned int p_nbr; + if (nbr == 0) return (write(1, "0", 1)); if (nbr < 0) { write(1, "-", 1); - return (1 + ft_putnbr_base(nbr * -1, "0123456789", 10)); + p_nbr = nbr * -1; + return (1 + ft_putnbr_base(p_nbr, "0123456789", 10)); } return (ft_putnbr_base(nbr, "0123456789", 10)); } diff --git a/src/print_number.d b/src/print_number.d deleted file mode 100644 index 9dc87a3..0000000 --- a/src/print_number.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index bac453004bcbd6f84c913118d6fd79a608bcf66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 */ +/* Updated: 2025/11/17 12:53:27 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../libft/libft.h" -#include "../include/ft_printf.h" +#include "libft.h" +#include "ft_printf.h" int print_pointer(unsigned long long p) { + if (!p) + { + ft_putstr_fd("(nil)", 1); + return (5); + } 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 deleted file mode 100644 index fe93b16..0000000 --- a/src/print_pointer.d +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index bbabbfff1023c2e11291aa241447e11336e22d57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/print_str.c b/src/print_str.c index 4f4f8ea..ae7726c 100644 --- a/src/print_str.c +++ b/src/print_str.c @@ -6,14 +6,19 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/17 12:02:03 by dgaillet #+# #+# */ -/* Updated: 2025/11/17 12:03:27 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/17 12:51:56 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../libft/libft.h" +#include "libft.h" int print_str(char *str) { + if (!str) + { + ft_putstr_fd("(null)", 1); + return (6); + } ft_putstr_fd(str, 1); return (ft_strlen(str)); } diff --git a/src/print_str.d b/src/print_str.d deleted file mode 100644 index f7d063a..0000000 --- a/src/print_str.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index c9fe064f70e066efb4c6475aae10a1f93883f2c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 */ +/* Updated: 2025/11/17 12:44:47 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ -#include "../include/ft_printf.h" +#include "ft_printf.h" #include int print_unsigned(unsigned int nbr) diff --git a/src/print_unsigned.d b/src/print_unsigned.d deleted file mode 100644 index 3e4f9b3..0000000 --- a/src/print_unsigned.d +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 1ade64e9739c1fa9515692a16187a9d6a568abc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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; diff --git a/test.c b/test.c new file mode 100644 index 0000000..a38c91b --- /dev/null +++ b/test.c @@ -0,0 +1,114 @@ +#include +#include +#include "include/ft_printf.h" + +void test(const char *name, int (*test_func)(void)) +{ + printf("\n===== %s =====\n", name); + test_func(); +} + +int test_char(void) +{ + int r1, r2; + + r1 = printf("printf: [%c]\n", 'A'); + r2 = ft_printf("ft_printf: [%c]\n", 'A'); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_string(void) +{ + int r1, r2; + + r1 = printf("printf: [%s]\n", "Hello"); + r2 = ft_printf("ft_printf: [%s]\n", "Hello"); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + r1 = printf("printf: [%s]\n", NULL); + r2 = ft_printf("ft_printf: [%s]\n", NULL); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_pointer(void) +{ + int x = 42; + int r1, r2; + + r1 = printf("printf: [%p]\n", &x); + r2 = ft_printf("ft_printf: [%p]\n", &x); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + r1 = printf("printf: [%p]\n", NULL); + r2 = ft_printf("ft_printf: [%p]\n", NULL); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_decimal(void) +{ + int r1, r2; + + r1 = printf("printf: [%d] [%i]\n", 42, -42); + r2 = ft_printf("ft_printf: [%d] [%i]\n", 42, -42); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + r1 = printf("printf: [%d]\n", INT_MIN); + r2 = ft_printf("ft_printf: [%d]\n", INT_MIN); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_unsigned(void) +{ + int r1, r2; + + r1 = printf("printf: [%u]\n", 4294967295u); + r2 = ft_printf("ft_printf: [%u]\n", 4294967295u); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_hex(void) +{ + int r1, r2; + + r1 = printf("printf: [%x] [%X]\n", 3735928559u, 3735928559u); + r2 = ft_printf("ft_printf: [%x] [%X]\n", 3735928559u, 3735928559u); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int test_percent(void) +{ + int r1, r2; + + r1 = printf("printf: [%%]\n"); + r2 = ft_printf("ft_printf: [%%]\n"); + printf("Return printf: %d | Return ft_printf: %d\n", r1, r2); + + return (0); +} + +int main(void) +{ + test("CHAR", test_char); + test("STRING", test_string); + test("POINTER", test_pointer); + test("DECIMAL", test_decimal); + test("UNSIGNED", test_unsigned); + test("HEX", test_hex); + test("PERCENT", test_percent); + + printf("\n===== ALL TESTS DONE =====\n"); + return (0); +} +