ft_putnbr_fd

J_JEON·2022년 1월 16일
0

libft

목록 보기
34/44

💻 ft_putnbr_fd

int형 정수를 받아와 주어진fd와 write함수를 사용해 출력해주는 함수

📃 ft_putnbr_fd 원형

void	ft_putnbr_fd(int n, int fd)

🔩 parameters

n : 출력할 int형 정수
fd : 파일 디스크립터

📬 return

없음

🧨 주의사항

  • write함수는 int형을 바로 출력할 수 없으므로 ascii코드를 활용해 출력해주어야함
  • ft_itoa를 사용하려했으나 malloc을 사용하면 안되므로 유사한 방식이지만 이번엔 재귀함수를 사용해 재구현
  • 재귀함수를 통해 나중에 호출된 함수가 먼저 실행되는방식으로 하나씩 출력
  • int형의 min max를 잘 생각해서 구현해줘야함

⌨ 코드


#include "libft.h"

void	ft_putnbr_fd(int n, int fd)
{
	char	str;

	if (fd < 0)
		return ;
	if (n == -2147483648)
	{
		write(fd, "-2147483648", 11);
		return ;
	}
	else if (n < 0)
	{
		write(fd, "-", 1);
		n = n * -1;
	}
	if (n >= 10)
	{
		ft_putnbr_fd(n / 10, fd);
		str = '0' + (n % 10);
	}
	else if (n < 10)
	{
		str = '0' + n;
	}
	write(fd, &str, 1);
}

profile
늅늅

0개의 댓글