Ft_Printf

개요

c언어에서 printf 함수의 다재다능함은 우리에게 좋은 프로그래밍 연습이 된다.

이 프로젝트는 보통의 난이도를 가지고 있다.

이 프로젝트의 목적은 가변인자함수르 공부하게 하는 것이다.

이번 과제의 성공요인은 잘 구조화되어 확장가능한 코드이냐이다.




Common Instructions


이 과제는 노미네트 규칙을 따라야하고 segmentation fault, bus error, double free는 발생하면 안된다.

할당된 메모리는 모두 해제를 시켜주어야한다.




Mandatory part


program name

libftprintf.a


Turn in files

*.c, */*.c, *.h, */*.h, Makefile


makefile

all, clean, fclean, re, bonus


External functs.

malloc, free, write, va_start, va_arg, va_copy, va_end


Libft authorized

yes


Description

printf를 모방한 ft_printf를 포함한 라이브러리를 하나 만들어야한다.


prototype of ft_printf

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


kinds of conversions to implement

c, s, p, d, i, u, x, X, %


%c

단일문자를 출력하면된다.


%s

문자열을 출력하면된다.


%p

void *형식의 포인터 인자를 16진수로 출력하면된다.


%d

숫자를 출력하면된다.


%i

정수를 출력하면된다.

%d 와 %i 차이점

output에는 차이점이 없다. 그러므로 이번과제에서는 동일한 기능으로 구현하면 된다.

input에서 차이가 있는데 %dsigned의 정수를 입력받는 반면 %i10/8/16진수를 입력받는다.


%u

부호없는 정수를 출력하면된다.


%x

소문자로 부호없는 16진수를 출력하면된다.


%X

대문자로 부호없는 16진수를 출력하면된다.


%x와 %X 차이점

16진수에서 11부터 15까지는 a~f로 표현한다.


%%

%기호를 출력하면된다.