본문 바로가기
C언어

개행문자 r \ n, \ n, \t, \b

by janeparker 2023. 6. 3.
728x90
반응형

출처 : https://itng.tistory.com/25

이스케이프 시퀀스란?

printf함수에서 엔터(줄 바꿈)나 탭 같은 특수한 문자들을 출력하기 위한 문자입니다.

위 표는 이스케이프 시퀀스의 종류와 의미를 나타낸 것인데요

일단 역슬래쉬가 모두 붙어있죠?

하지만 우리 키보드에서는 보이지 않군요;;

사실 역슬래쉬를 담당하는 키는 \ 얩니다.

보통 백스페이스 밑에 있는 친구인데 dev c++에서 \이 친구를 치면 역슬래쉬가 나오는 것을 볼 수 있습니다.

이런식으로 말이죠!!

자 이제 표로 돌아가서,

먼저 \b 부터 알아보겠습니다.

표에서 보시는 바와같이 '백스페이스'를 의미합니다.

우리가 글을 쓰다가 키보드에서 백스페이스 키를 누르면 어떻게 되죠?

지워집니다.

그것처럼 똑같이 지워져요...!

#include <stdio.h> int main() { printf("aaa"); printf("\b"); printf("c"); return 0; }

위와같은 코드를 실행시키면

다음과 같이 a세개중 마지막 하나가 지워지고 c가 출력되었습니다.

다음은 \t 입니다.

탭을 의미하는데, dev c++프로그램에서 tab키를 누르면 4칸이 움직이는 것을 볼 수 있습니다.

사실 제 코드들을 보면 중괄호 {}안에는 코드를 보기 편하게 작성하기 위해 들여쓰기가 되어있는 것을 볼 수 있습니다.

들여쓰기란 tab키를 이용해서 4칸 움직여 같은 탭수(?)는 같은 중괄호 안에 있다는 것을 의미하죠.

(음...생각보다 들여쓰기를 설명하기 어렵군요....;;)

c언어에서는 중괄호{}를 이용해 묶지만, 파이썬은 중괄호를 사용하지 않고, 들여쓰기만으로 표시하기때문에 파이썬에서 아주 중요하게 사용됩니다.

아무튼....\t를 출력하시면 8칸 공백이 생깁니다.(....?!)

#include <stdio.h> int main() { printf("a\ta"); return 0; }

\t 는 무언가를 정렬해 출력할때 잘 쓰입니다.(ex. 구구단 등.)

다음은 \r 입니다.

의미는 '열 복귀' 라는데 말 그대로 그 줄 맨 처음으로 가는 것을 말합니다.

#include <stdio.h> int main() { printf("aaaaa\rbb"); return 0; }

다음 코드를 실행하면 어떻게 출력될까요??

의미는 aaaaa를 출력하고 줄 맨 처음으로 돌아가 bb를 출력한다...

bbaaaaa 가 출력될지, bbaaa 가 출력될지 고민이 되실텐데 정답은

이겁니다.

열 복귀를 한 뒤 맨 앞 aa자리에 그냥 그대로 bb가 덮여씌운듯 출력이 되었습니다.

다음은 정말정말정말 많이 쓰이는 \n 입니다.

의미는 줄바꿈인데요.. 다음줄 맨 처음으로 가게됩니다.

#include <stdio.h> int main() { printf("a\na"); return 0; }

위 코드를 실행시키면 다음 그림과 같이 a가 출력되고 다음줄 맨 처음으로 가 a를 출력하는 것을 볼 수 있습니다.

이번엔 \" , \', \\ 이 3가지를 한꺼번에 다뤄볼건데요.

우리가 printf()함수를 사용할 때, 큰따옴표 (문자 하나일 경우에는 작은 따옴표) 안에 출력할 문장을 작성해서 함수가 작동하죠?

그런데, 큰따옴표나 작은 따옴표를 출력하고 싶을 때는 어떻게 하면 될까요?

또 역슬래쉬가 이스케이프 시퀀스 문자를 출력하는데 아주 중요한 역할을 가지는 친구인데 이 역슬래쉬 자체를 출력하고 싶을 때는 어떻게 하면 될까요?

\" \' \\ 를 사용하면 됩니다.

#include <stdio.h> int main() { printf("\" \' \\"); return 0; }

위와 같은 코드를 실행시키면 다음과 같이 출력됩니다.

정말 간단하죠?

728x90
반응형

'C언어' 카테고리의 다른 글

비트단위 연산자 종류별 예시  (0) 2023.06.03
자료형의 크기 및 범위  (0) 2023.06.03
%hhu %hhd 차이  (0) 2023.06.03
10진수를 2진수로, 2진수를 10진수로  (0) 2023.06.03
2진수 10진수 16진수 변환  (0) 2023.01.26