티스토리 뷰

Table of Contents


printf

이스케이프 시퀀스

문제




1. printf


 C언어로 프로그램을 만들 때, 가장 많이 하게 되는 작업 중 하나가 사용하고 싶은 기능을 가진 함수를 만드는 것입니다. 그러나 사용할 함수를 모두 스스로 코딩할 필요는 없습니다. 미리 만들어져 있는 함수를 가져다 씀으로써 효율적인 프로그래밍이 가능하기 때문입니다.


 이 글에서는 그러한 함수 중, printf 를 소개합니다.


 printf 는 <stdio.h>에 있는C언어의 대표적인 출력 함수로서,


 printf("출력할 내용");


 이런 식으로 큰따옴표 안에 원하는 내용을 적기만 하면 되는 편리한 함수입니다. 아래와 같은 프로그램을 실행해보면 큰따옴표 안의 내용이 출력되는 걸 확인할 수 있습니다.


1
2
3
4
5
6
7
8
9
//code by RiKang, weeklyps.com
#include <stdio.h>
 
int main(void) {
    printf("출력 함수 printf");
    printf("stdio.h");
    printf("Missing you");
    return 0;
}
cs


 printf 함수를 사용하기 위해선, 전처리문 #include<stdio.h> 가 필요합니다.




2. 이스케이프 시퀀스


 printf를 이용하면 프로그래밍을 처음 접하신 분들도 대부분 원하는 내용을 출력할 수 있지만, C언어의 특성상, 일반적인 상식으로는 출력할 수 없는 내용도 존재합니다. 예를 들어서 한 줄 띄기가 있습니다. 일반적인 에디터들은 엔터를 사용하므로, 한 번 printf 에도 엔터를 써보도록 하겠습니다.




 그러면 위와 같이 에러가 나는 걸 확인할 수 있습니다. printf("엔터  와  엔터"); 를 다른 줄로 인식하기 때문입니다.


 printf("엔터를 살펴보면, 큰따옴표를 닫지 않았고 괄호도 닫지 않았고 거기다 세미콜론(;)까지 없기 때문에 C언어의 문법에 맞지 않습니다. 따라서 컴파일이 제대로 진행되지 않고, error가 발생한 상황입니다. 이 에러를 제거하기 위해선 결국 두 줄을 하나의 줄로 합쳐야 합니다. 하지만 그랬다간 한 줄 띄기를 출력하려던 원래 목적을 달성하지 못하죠.


  C언어에서는 이런 문제를 해결하기 위해 '한 줄 띄기'를 의미하는 다른 문자를 지원하고 있습니다. 바로 "\n" 입니다.

(백슬래쉬는 엔터 위의 '원' 표시로 입력 가능합니다.)



 \n 을 입력하면 위와 같이 제대로 한 줄 띄워진 채 출력됨을 확인할 수 있습니다.


 이처럼, C언어의 문법상 원하는 내용을 제대로 출력하기 힘든 상황들을 해결하기 위한 "\n"같은 문자들을 이스케이프 시퀀스라고 합니다. 아래는 \n를 포함한 이스케이프 시퀀스의 예시들입니다.


이스케이프 시퀀스 

출력

\n

한 줄 띄기

\'

작은따옴표

\"

큰따옴표

\t

수평 탭

\v

수직 탭

\?

물음표

\\

백슬래쉬

\b

백스페이스 

\f

인쇄할 때 종이 넘김 


 "\n"과 같이 자주 쓰는 것들은 저절로 몸에 익혀지기 때문에, 이스케이프 시퀀스를 따로 외울 필요까진 없습니다. 기억해야 할 것은 간단한 문자들은 대부분 \ 를 활용해 출력할 수 있다는 것, 그리고 어떻게 출력해야 할지 모를 경우 해당하는 이스케이프 시퀀스를 찾아봐야 한다는 것 정도입니다. 




3. 문제


백준 온라인 저지 채점 방법


 위의 채점 방법에 따라, 아래의 문제 링크로 들어가 제출 탭을 선택한 후 C언어로 작성하신 프로그램을 제출하면, 제대로 프로그래밍을 하였는지 확인해볼 수 있습니다. "맞았습니다."를 받지 못하셨다면 풀이 모음을 확인바랍니다.


(0) [BOJ 2557] Hello World


(1) [BOJ 7287] 등록 


(2) [BOJ 10172] 개


(3) [BOJ 1237] 정ㅋ벅ㅋ


풀이 모음