ft_printf %cspc처리

main_door·2021년 1월 6일
0

42_Printf

목록 보기
3/3

type %,c,s는 처리가 그렇게 어렵지 않아, 넘어가도록 한다.

type P의 처리.

p옵션은 들어온 포인터 변수의 주소를 16진수로 변환시켜 보여주는 타입이다. 이를 처리하기 위해 매개변수로 받은 가변인자를 long long자료형으로 변환시켜 사용한다. 사실상 방법은 그렇게 어렵지 않다. 기존에 정수형 10진수를 16진수로 변형시키는 x옵션이 있는데, 자료형만 바꿔 그 똑같이 문자열을 처리해주면 된다.

int			ft_print_type_pointer(t_format *t_form, va_list *va)
{
	char		*str;
	long long	p;
	int			i;

	i = 0;
	ft_putstr_fd("0x",1);//앞에 기본적으로 붙는 문자
	str = ft_lltoh((long long)va_arg(*va, long long));
	while (i < 12)
	{
		ft_putchar_fd(str[i],1);
		i++;
	}
	free(str);
	return (14);//%p가 리턴하는 문자열은 0x + 12개의 16진수로 항상 14개이다.
}
profile
무료함은 인간을 무기력하게 만들고, 몰입과 노력은 사람을 긍정적이게 만든다

0개의 댓글