본문 바로가기
42seoul/circle-1

[ printf ] 0. 문제 이해하기

by saniii 2021. 12. 23.

- libc의 printf 직접 구현하기

 

- 성공적인 ft_printf는 체계적이고 확장성있는 코드입니다.

 

- 사용 가능한 외부 함수

  • malloc :  void *malloc(size_t size); : size 바이트의 메모리를 힙에서 할당하여 반환
  • free : void free(void *ptr); : ptr이 가르키는 메모리를 해제
  • write : size_t write(int fd, const void *buf, size_t n); : open()함수로 연 파일에 쓸 수 있게 함
  • va_start : **
  • va_arg : **
  • va_copy : **
  • va_end : **

** 가변인자(variadic arguments)를 사용하는 방법을 배워봅시다.

     > 가변인자 : 매번 함수에 들어가는 인수의 개수가 변하는 것

2022.01.16 - [42_san (42seoul)/ft_printf] - [ft_printf] 2. 가변인자 (variadic arguments)

 

[ft_printf] 2. 가변인자 (variadic arguments)

와....... 잘 보다가 수정인줄 알고 잘못눌러서 삭제했다......하.......... 이거뭐 이 억울함을 누구한테 말할 수도 없고............말도 안돼.......... 아니야아니야아니야니야나ㅣㅇ니ㅑㅇ니ㅏㅇ니ㅏ

rrddo.tistory.com

 

 

- ft_printf의 프로토타입 : int ft_printf(const char *, ---);

    > 반환값자료형    함수이름(자료형 고정매개변수, --- );

 

- 실제 printf처럼 버퍼 관리를 수행해서는 안된다.

2022.01.15 - [42_san (42seoul)/ft_printf] - [ ft_printf ] 3. printf의 버퍼 관리 방법 (표준 입출력과 버퍼 | 스트림과 데이터 이동)

 

[ ft_printf ] 3. printf의 버퍼 관리 방법 (표준 입출력과 버퍼 | 스트림과 데이터 이동)

# 입력과 출력 + 입력 : 프로그램 안으로 데이터가 들어오는 것 ex) 키보드, 파일, 마우스 ... + 출력 : 프로그램 밖으로 데이터가 나가는 것 ex) 모니터, 파일, 프린터 ... # 스트림 + 스트림(stream) : 한

rrddo.tistory.com

 

- cspdiuxX%의 서식 지정자를 구현해라.

  • %c : 단일 문자(character) 한 개 출력
  • %s : 문자열(string)을 출력
  • %p : void* 형식의 포인터 인자를 16진수로 출력
  • %d : 10진수 숫자를 출력 
  • %i : 10진수 정수를 출력
  • %u : 부호 없는 10진수 숫자를 출력
  • %x : 소문자를 사용하여 숫자를 16진수로 출력
  • %X : 대문자를 사용하여 숫자를 16진수로 출력
  • %% : 퍼센트(%) 기호 출력
  • man printf / man 3 stdarg 를 참고

2021.12.29 - [42_san (42seoul)/ft_printf] - [ ft_printf ] 1. printf

 

[ ft_printf ] 1. printf

# printf - C언어의 표준 출력 함수 - 여러 종류의 데이터를 각 서식에 맞게 출력할 수 있다. - 원형 # include int printf(const char *format, ...);  > format에 쓰여진 데이터를 ...(서식지정자)의 형식으로..

rrddo.tistory.com

 

 

# 보너스 파트

- '-0.' 플래그들의 조합을 구현

- '# +' 다음 플래그를 모두 구현

 

 

 

 

 

댓글