Skip to content

aLVINlEE9/printf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

printf

printf와 putstr으로는 만족할 수 없기 때문에

요약 : 이 프로젝트는 꽤 단순합니다. 여러분은 printf 함수를 직접 구현하시면 됩니다. 희망컨대 여러분들은 cheater로 지목될 수 있다는 두려움 없이 추후 프로젝트에서 이것을 재활용할 수 있습니다.

여러분은 주로 가변 인자 (variadic arguments) 를 사용하는 방법에 대해 배울 것입니다.


Contents

Chapter Contents page
1 Introduction 2
2 Common Instructions 3
3 Mandatory part 4
4 Bonus part 5

Chapter 1

Goals


C에서 printf 함수의 다재다능함은 프로그래밍에 있어 우리에게 훌륭한 연습이 됩니다. 이 프로젝트는 중간 정도의 난이도를 가지며, 여러분들이 C에서 가변 함수들을 배울 수 있도록 도와줍니다.

성공적인 ft_printf의 핵심은 체계적이고 확장성 있는 코드입니다.


Chapter 2

Common Instructions

  • 프로젝트는 Norm 규칙에 맞춰 작성되어야 합니다. 보너스 파일/함수가 존재할 경우, 그 또한 norm 검사에 포함되며 norm error가 있을 시 0점을 받게 됩니다.

  • 함수들은 정의되지 않은 행동들과 별개로 예기치 않게 중단되어서는 안 됩니다.(예를 들어, segmentation fault, bus error, double free 등) 만약 이렇게 중단되면, 당신의 프로젝트는 작동하지 않는 것으로 여겨지고 평가에서 0점을 받을 것입니다.

  • 필요한 경우 heap에 할당된 모든 메모리 공간은 적절하게 해제되어야 합니다. 메모리 누수는 용납되지 않습니다.

  • 과제에서 필요한 경우, -Wall -Wextra -Werror 플래그를 지정하여 컴파일을 수행하는 Makefile을 제출해야 합니다. Makefile은 relink 되어서는 안 됩니다.

  • Makefile은 최소한 $(NAME), all, clean, fclean, re 규칙을 포함해야 합니다.

  • 프로젝트에 보너스를 제출하려면, Makefile에 보너스 규칙을 포함해야 합니다. 이 보너스 규칙은 프로젝트의 메인 파트에서 금지되었던 모든 다양한 헤더, 라이브러리, 또는 함수들을 추가하여야 합니다. 보너스 과제는 반드시 _bonus.{c/h}라는 별도의 파일에 있어야 합니다. 반드시 수행하여야 하는 메인 파트의 평가와 보너스 파트의 평가는 별도로 이뤄집니다.

  • 만일 프로젝트에서 여러분의 libft 사용을 허용한다면, 소스들과 관련 Makefile을 함께 루트 폴더 안에 있는 libft 폴더에 복사해야 합니다. 프로젝트의 Makefile은 우선 libft의 Makefile을 사용하여 라이브러리를 컴파일한 다음, 프로젝트를 컴파일해야 합니다.

  • 이 과제물을 제출할 필요가 없고, 채점 받을 필요가 없을지라도, 저희는 여러분들이 프로젝트를 위한 테스트 프로그램을 만들 것을 권장합니다. 이것은 여러분의 과제물과 동료들의 과제물을 쉽게 테스트할 수 있게 도울 것입니다. 또한, 평가를 진행할 때 이러한 테스트 프로그램들이 특히 유용하다는 사실을 알게 될 것입니다. 평가 시에는 여러분의 테스트 프로그램과 평가 받는 동료의 테스트 프로그램들을 당연히 자유롭게 사용할 수 있습니다.

  • 할당된 git 저장소에 과제물을 제출하세요. 오직 git 저장소에 있는 과제물만 등급이 매겨질 것입니다. Deepthought가 평가하는 과제의 경우엔, 동료평가 이후에 Deepthought가 수행됩니다. 만약 Deepthought 평가 중에 오류가 발생한다면, 그 즉시 평가는 중지될 것입니다.


Chapter 3

Mandatory part

프로그램 이름 libftprintf.a
제출할 파일 *.c, */*.c, *.h, */*.h, Makefile
Makefile 규칙 all, clean, fclean, re, bonus
사용가능한
외부 함수
malloc, free, write, va_start, va_arg, va_copy, va_end
직접 만든 libft 사용 가능
설명 실제 printf의 동작을 모방한 ft_printf를 포함하는 라이브러리를 작성하세요.

  • ft_printf의 프로토타입은 int ft_printf(const char *, ...); 이어야 합니다.

  • 여러분은 libcprintf 함수를 재구현해야 합니다.

  • 실제 printf처럼 버퍼 관리를 수행해서는 안 됩니다.

  • 다음 서식 지정자를 구현하세요 : cspdiuxX%

  • 다음 플래그들과, 각 서식 지정자의 최소 폭을 포함한 모든 조합을 구현하여야 합니다 : -0.*

  • 실제 printf와 비교하여 채점할 것입니다.

  • ar 명령어를 이용하여 라이브러리를 만들어야 합니다. libtool을 사용하는 것은 금지됩니다.

⚠
man 3 printf / man 3 stdarg

Chapter 4

Bonus part


  • 필수 구현 파트가 완벽하지 않으면, 보너스는 생각도 하지 마세요.

  • 모든 보너스를 구현할 필요는 없습니다.

  • 다음 서식 지정자 중 한 개 이상을 구현하세요 : nfge

  • 다음 플래그 중 한 개 이상을 구현하세요 : l ll h hh

  • 다음 플래그를 모두 구현하세요 : '# +' (맞아요, 한 개는 공백이에요)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published