summaryrefslogtreecommitdiff
path: root/libft/ft_puti128_fd.c
blob: a8bc0fe01a8c77ac490fe1d2a6f1f6f1e1dd2d98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_puti128_fd.c                                    :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: kdx    <kdx   @student.42angouleme.fr      +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2022/09/29 02:29:50 by kdx               #+#    #+#             */
/*   Updated: 2022/10/04 05:53:17 by kdx              ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#include "libft.h"

size_t	ft_puti128_fd(t_i128 n, int fd)
{
	t_u128	v;
	t_u128	div;
	size_t	rv;

	rv = 0;
	v = n;
	if (n < 0)
	{
		rv += ft_putchar_fd('-', fd);
		v = -n;
	}
	div = 1;
	while (div <= v / 10)
		div *= 10;
	while (div > 0)
	{
		rv += ft_putchar_fd('0' + v / div % 10, fd);
		div /= 10;
	}
	return (rv);
}