제어문자 (이스케이프 시퀀스)
정의
- 제어문자(Control Characters) 또는 이스케이프 시퀀스(Escape Sequences)
- 눈에 보이는 문자를 출력하는 게 아니라, 출력 위치를 제어하거나(커서 이동), 특별한 동작(경고음 등)을 수행하는 문자의 총칭
- 앞선 글에서 잠깐 스쳐간 백색 문자(white space) 또한 이 제어문자의 한 종류이다.
\\를 이스케이프 문자라고 한다.
종류
| 제어 문자 | 명칭 | 역할/설명 |
|---|---|---|
' ' |
공백 | 단일 공백을 삽입한다. |
'\t' |
탭 | 수평 탭(Horizontal Tab)을 삽입한다. |
'\v' |
수직 탭 | 수직 탭(Vertical Tab)을 삽입한다. |
'\n' |
개행 | 새 줄(New Line)로 이동한다. |
'\r' |
캐리지 리턴 | 현재 줄의 맨 앞으로 커서(출력 위치)를 이동한다. |
'\f' |
폼 피드 | 새 페이지(Form Feed)로 이동한다. |
'\0' |
널 문자 | 문자열의 끝을 나타내는 데 사용되며, 출력 시 아무것도 표시되지 않는다. |
'\b' |
백스페이스 | 커서를 한 칸 뒤로 이동시켜 이전 문자를 덮어쓰거나 지우는 데 사용된다. |
'\a' |
알람 | audible/visual alarm(경고음)을 발생시킨다. |
사용해보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
char space = ' ';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "space", space, space, space, space);
char tab = '\t';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "tab", tab, tab, tab, tab);
char vertical_tab = '\v';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "vertical_tab", vertical_tab, vertical_tab, vertical_tab, vertical_tab);
char new_line = '\n';
printf("%s : '%c' <end>\n", "new_line", new_line);
char carriage_return = '\r';
printf("%s : '%c' <end>\n", "carriage_return", carriage_return);
char form_feed = '\f';
printf("%s : '%c' <end>\n", "form_feed", form_feed);
char alarm = '\a';
// 문자열에 직접 넣거나, putchar, fflush 등으로 알람 소리를 출력할 수 있다.
printf("%s : '%c' <end>\n", "alarm", alarm);
putchar('\a');
fflush(stdout);
char null = '\0';
printf("%s : '%c' <end>\n", "null", null);
char back_space = '\b';
printf("%s : '%c' <end>\n", "back_space", back_space);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 출력 : \s
space * 4번: ' ' ' ' ' ' ' ' <end>
# 출력 : \t
tab * 4번: ' ' ' ' ' ' ' ' <end>
# 출력 : \v
vertical_tab * 4번: '
' '
' '
' '
' <end>
# 출력 : \n
new_line : '
' <end>
# 출력 : \r
' <end>e_return : '
# 출력 : \f
form_feed : '
' <end>
# 출력 : \a
alarm : '' <end>
# 출력 : \0
null : '' <end>
# 출력 : \b
back_space : ' <end>
이스케이프 문자를 직접 문자로 출력하기
- 이스케이프 문자는 다른 문자와 결합하여 특정 기능이 작동하게끔 하는 역할을 한다.
- 만약 이스케이프 문자를 문자로 직접 표현하고 싶다면, 연속으로 두 번 작성하면 된다.
1
2
3
void expression_escape_char_word() {
printf("escape 문자를 직접 문자로 출력할 때에는\n");
printf("escape 문자를 연속으로 두 번 사용한다. \\");
1
2
3
# 출력
escape 문자를 직접 문자로 출력할 때에는
escape 문자를 연속으로 두 번 사용한다. \
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments