개요

본 프로젝트는 stdio.hprintf()를 구현할 것을 요구한다.

지시 사항

구현 요구사항

구현할 함수의 프로토타입은 다음과 같다.

int ft_printf(const char *format, ...);

이때 libcprintf처럼 버퍼 관리를 수행할 필요는 없다. c s p d i u x X %의 총 9가지 변환을 수행해야 한다.

각 변환에 대해 다음 플래그를 구현한다:

각 사항별 상세

FreeBSD의 매뉴얼(man 3 printf)에서는 다음과 같이 명세한다.

형식 문자열

const char *format으로 주어지는 문자열에서 %가 아닌 문자는 그대로 출력 스트림에 복사한다. 이 과정 중 %를 만날 경우 형식 문자열을 파싱하려 시도하고, 파싱이 성공적일 시 각 변환이 요구하는 매개 변수를 소모하게 된다.

형식 문자열은 다음과 같이 구성된다.

{flags: #0- +}{minimum field width: 숫자}{precision: .과 숫자들}{conversion specifier: [cspdiuxX%]}

플래그

flags

최소 너비