개요
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에서 차이가 있는데 %d
는 signed의 정수를 입력받는 반면 %i
는 10/8/16진수를 입력받는다.
%u
부호없는 정수를 출력하면된다.
%x
소문자로 부호없는 16진수를 출력하면된다.
%X
대문자로 부호없는 16진수를 출력하면된다.
%x와 %X 차이점
16진수에서 11부터 15까지는 a~f로 표현한다.
%%
%기호를 출력하면된다.