transition from printf to write

This commit is contained in:
Camille Chauvet
2023-04-25 14:30:21 +00:00
parent 531d3146e4
commit 6759520714
5 changed files with 99 additions and 11 deletions

6
utils/putchar.c Normal file
View File

@ -0,0 +1,6 @@
#include <unistd.h>
void ft_putchar(char c)
{
write(1, &c, 1);
}

47
utils/putnum.c Normal file
View File

@ -0,0 +1,47 @@
#include <stddef.h>
#include <unistd.h>
#include <stdlib.h>
#include "utils.h"
static size_t get_size(size_t num)
{
size_t nb_digit;
size_t rest;
nb_digit = 0;
if (num == 0)
nb_digit++;
rest = num;
while (rest != 0)
{
nb_digit++;
rest = rest / 10;
}
return (nb_digit);
}
static void ft_putdigit(size_t num)
{
if (num > 9)
{
ft_putdigit(num / 10);
ft_putchar(num % 10 + 48);
}
else
ft_putchar(num + 48);
}
void ft_putnum(size_t num, size_t padding)
{
size_t size;
size_t i;
i = 0;
size = get_size(num);
while (i < padding - size)
{
ft_putchar('0');
i++;
}
ft_putdigit(num);
}

14
utils/putstr.c Normal file
View File

@ -0,0 +1,14 @@
#include "utils.h"
#include <stddef.h>
void ft_putstr(char *str)
{
size_t i;
i = 0;
while (str[i] != 0)
{
ft_putchar(str[i]);
i++;
}
}

View File

@ -6,7 +6,7 @@
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/04/11 14:38:07 by cchauvet #+# #+# */
/* Updated: 2023/04/11 14:46:12 by cchauvet ### ########.fr */
/* Updated: 2023/04/25 14:09:53 by cchauvet ### ########.fr */
/* */
/* ************************************************************************** */
@ -17,5 +17,8 @@
bool ft_isnum(char str[]);
int ft_atoi(const char str[]);
void ft_putchar(char c);
void ft_putstr(char str[]);
void ft_putnum(size_t num, size_t padding);
#endif