ft_putnbr.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* ft_putnbr.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2015/11/25 16:54:21 by bchanot #+# #+# */
  9. /* Updated: 2016/06/16 15:43:06 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "libft.h"
  13. void ft_putnbr_fd(long int n, int fd)
  14. {
  15. long nbr;
  16. nbr = n;
  17. if (nbr == -2147483648)
  18. {
  19. ft_putstr_fd("-2147483648", fd);
  20. return ;
  21. }
  22. if (nbr < 0)
  23. {
  24. ft_putchar_fd('-', fd);
  25. nbr = -nbr;
  26. }
  27. if (nbr > 9)
  28. {
  29. ft_putnbr_fd((nbr / 10), fd);
  30. ft_putnbr_fd((nbr % 10), fd);
  31. }
  32. else
  33. ft_putchar_fd((nbr + 48), fd);
  34. }
  35. void ft_putnbr(long int n)
  36. {
  37. return (ft_putnbr_fd(n, 1));
  38. }
  39. void ft_putnbrlong(long long int nb, int fd)
  40. {
  41. if (nb < 0)
  42. {
  43. ft_putchar_fd('-', fd);
  44. if (nb == (-9223372036854775807 - 1))
  45. {
  46. ft_putstr_fd("9223372036854775808", fd);
  47. return ;
  48. }
  49. nb = -nb;
  50. }
  51. if (nb < 10)
  52. ft_putchar_fd(48 + nb, fd);
  53. else
  54. {
  55. ft_putnbrlong(nb / 10, fd);
  56. ft_putnbrlong(nb % 10, fd);
  57. }
  58. }