이번 글에서는 지난 글에서 잠깐 언급되었던 이스케이프 시퀀스에 대해서 좀 더 자세히 알아보려고 한다.
이스케이프 시퀀스란 '\' 문자와 다른 문자를 결합하여 일반적인 방법으로는 표현하기 어려운 기능이나 문자를 표현할 수 있게 해주는 문자를 말한다.
지난 글의 경우, '\n'을 'Hello World!'를 출력하는 데 함께 사용하여 줄바꿈을 하는 용도로 사용했는데 이것이 바로 이스케이프 시퀀스였다.
이스케이프 시퀀스에는 줄바꿈을 해주는 '\n' 문자 외에도 다양한 것들이 있다. 일반적으론 표현할 수 없는 것들을 표현할 수 있도록 고안되었는데 생각보다 많으니 대충 살펴보고 필요할 때마다 참고하기를 바란다.
문자 | 의미 | 설명 | |
\a | 경보(alert) | 경보를 울린다.(하드웨어에 따라 다르다) | |
\b | 백스페이스(backspace) | 백스페이스 | |
\f | 폼피드(form) | 커서를 다음 페이지의 시작부분으로 넘김 | |
\n | 개행, 줄바꿈(new line) | 커서를 다음 줄 첫 번째 위치로 넘김 | |
\r | 복귀, 캐리지 리턴(carriage return) | 커서를 다음줄로 넘기지 않고 첫 번째 위치로 넘김 | |
\t | 수평 탭(horizontal tab) | 키보드의 tab 키와 같은 기능 | |
\v | 수직 탭(vertical tab) | 수직으로 탭 | |
\\ | 백슬래시(backslash) | 백슬래시를 표기한다. | |
\' | 작은 따옴표(single quotation marks) | C/C++에서 문자(character)를 'a'와 같이 표기하는 데 이 기능과의 충돌을 방지하기 위해 이스케이프 문자로 표기함 | |
\" | 큰 따옴표(double quotation marks) | C/C++에서 문자열(string)을 "abc"와 같이 표기하는 데 이 기능과의 충돌을 방지하기 위해 이스케이프 문자로 표기함 | |
\? | 물음표(quesion mark) | 물음표는 C/C++에서 삼항연산자와 같이 사용되는 데 이와의 충돌을 방지하기 위해 이스케이프 문자로 표기함 | |
\o(8진수 숫자) | 8진수(octal number) |
10진수와 구분하기 위해 8진수를 이스케이프 문자를 이용하여 표기한다. 예시) \o73 |
|
\x(16진수 숫자) | 16진수(hexadecimal number) |
10진수와 구분하기 위해 16진수를 이스케이프 문자를 이용하여 표기한다. (예시) \xFFFF |
여기서 혹시 '\'을 키보드에서 찾고 계신 사람을 위해 알려드리자면 '\' 키는 오른쪽 엔터 키 위의 원화 키와 동일하다.
위 표를 보면 종종 설명을 봐도 이해가 안되는 부분이 있을 수 있다. 예를 들어 \f와 \v는 전혀 이해가 되지 않는다. 콘솔창에 '다음 페이지'라는 개념이 있나?라는 생각을 하게 되고, 수직 탭이 뭔지 검색하게 된다.
\f와 \v는 이스케이프 시퀀스 중 일부 디바이스별로 동작하는 문자 중 하나이며, \f는 용지를 공급하는 이스케이프 문자로 \v와 같이 화면 출력에는 영향을 주지 않고 해당 프린터에서 작업을 수행한다. - 참고
이외에도 이해가 안되는 문자들이 있을 수 있는데 이 경우에는 직접 실행해 보는 것이 가장 좋다. 간단한 코드를 남길테니 이전 글에서 'Hello World'를 출력하는 프로젝트를 생성하고 실행한 것과 같이 직접 Ctrl + N과 F11을 통해 실행해보기를 바란다.
#include <stdio.h>
int main()
{
printf("Hello World!\r");
printf("Your Name\tis\tgood\n");
return 0;
}
뭐든지 직접 해보는 것. 그것은 프로그래밍에 있어 매우 중요함을 기억하자.
'C, C++ > 문법 정리' 카테고리의 다른 글
[C언어]조건문을 사용해보자 1 - if문과 else문(+ 관계 연산자와 논리 연산자) (0) | 2020.04.24 |
---|---|
[C언어]자료형에 대해 알아보자 (0) | 2020.04.24 |
[C언어]변수에 대해서 살펴보자 (0) | 2020.04.24 |
[C언어]Hello World를 출력해보자(+ 유용한 Dev C++ 단축키) (0) | 2020.04.24 |
[C언어]Dev C++ 다운 및 설치 (0) | 2020.04.24 |
댓글