티스토리 뷰
Table of Contents
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언어로 작성하신 프로그램을 제출하면, 제대로 프로그래밍을 하였는지 확인해볼 수 있습니다. "맞았습니다."를 받지 못하셨다면 풀이 모음을 확인바랍니다.
(1) [BOJ 7287] 등록
(2) [BOJ 10172] 개
(3) [BOJ 1237] 정ㅋ벅ㅋ
'C, C++' 카테고리의 다른 글
[ C언어 ] 5. 변수 (2) (실수형 변수) (0) | 2017.11.13 |
---|---|
[ C언어 ] 4. 변수 (1) (정수형 변수 int) (0) | 2017.11.10 |
[ C언어 ] 3. 이진수와 비트 단위 (0) | 2017.11.10 |
[ C언어 ] 1. C언어 프로그램의 기본 구조 (0) | 2017.11.04 |
[ C언어 ] 0. 개요 (0) | 2017.11.04 |