[C] printf 제어문자를 통해 강아지 그리기

printf() 함수 안에서 사용되는 제어 문자에 관해 정리해보도록 하겠습니다.

  • \n : 줄바꿈(new line)
  • \b : 앞으로 한칸 이동(backspace)
  • \r : 커서를 줄의 가장 앞으로 이동(carriage return)
  • \t : tab만큼 이동(horizontal tab)
  • \a : 경고음 출력(alert)
  • \\ : \ 출력
  • \” : ” 출력
  • \’ : ‘출력
  • \0 : NULL
  • \x : 16진수를 문자로 출력

사용하는 방법은 간단합니다. 아래 내용을 복사하여 돌려보시기 바랍니다.

*Xcode에서는 \r은 new line을 동작하고, \b는 동작하지 않는 듯 합니다. 혹 맥에서 공부중이신 분들은 command line을 이용하여 Complie 후, 실행하시기 바랍니다.

\r is supposed to output a new line
\b deletes the character before it. Since you had “0000\b\b11\n”, you correctly got 0011 because the two \b’s deleted two 0s.

    printf("한칸 띄우기\n");
    printf("12345, 1을 9로 바꾸기\r9\n");
    printf("탭 만큼 이동. \t이동 후\n");

아래는 백준, 10172번, 강아지 그림을 그리는 문제입니다. \와 “표를 출력하기 위해 적절한 제어문자를 사용해주어야 합니다.

출력 예시

|\_/|
|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|

정답 코드

아래 정답 코드를 보시면 \\와 \”를 이용하여, Back Slash(\)와 Double Quotation(“”)을 표현한 것을 알 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(int argc, const char * argv[]) {
  printf(“|\\_/|\n”);
  printf(“|q p|   /}\n”);
  printf(“( 0 )\”\”\”\\\n”);
  printf(“|\”^\”`    |\n”);
  printf(“||_/=\\\\__|\n”);
}
cs

댓글 남기기