From 8c2756952ca97b79a3ddd90bad4f0517313dca02 Mon Sep 17 00:00:00 2001 From: Tanguy MAZE Date: Sun, 8 Apr 2018 15:43:05 +0200 Subject: [PATCH] norming & cleaning ft_putnbr & ft_putnbr_fd --- ft_putnbr.c | 4 ++-- ft_putnbr_fd.c | 28 +++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/ft_putnbr.c b/ft_putnbr.c index d91e457..8233431 100644 --- a/ft_putnbr.c +++ b/ft_putnbr.c @@ -6,7 +6,7 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/04/08 12:52:53 by tmaze #+# #+# */ -/* Updated: 2018/04/08 12:54:35 by tmaze ### ########.fr */ +/* Updated: 2018/04/08 15:33:50 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,5 +14,5 @@ void ft_putnbr(int n) { - ft_putstr(ft_itoa(n)); + ft_putnbr_fd(n, 1); } diff --git a/ft_putnbr_fd.c b/ft_putnbr_fd.c index 88ccf3f..b91a287 100644 --- a/ft_putnbr_fd.c +++ b/ft_putnbr_fd.c @@ -6,13 +6,35 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/04/08 13:05:24 by tmaze #+# #+# */ -/* Updated: 2018/04/08 13:06:15 by tmaze ### ########.fr */ +/* Updated: 2018/04/08 15:41:23 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -void ft_putnbr_fd(int n, int fd) +static unsigned long ft_abs(int n) { - ft_putstr_fd(ft_itoa(n), fd); + if (n < 0) + return ((unsigned long)n * -1); + return ((unsigned long)n); +} + +void ft_putnbr_fd(int n, int fd) +{ + unsigned long mult; + int nb_nbr; + unsigned long nbr; + + mult = 10; + nbr = ft_abs(n); + while (mult < nbr) + mult *= 10; + if (n < 0) + write(fd, "-", 1); + while (mult > 1) + { + nb_nbr = '0' + ((nbr % mult) / (mult / 10)); + write(fd, &nb_nbr, 1); + mult /= 10; + } }