관리 메뉴

Life is like a Wolf

[C언어]이스케이프 시퀀스(Escape sequence) 본문

프로그래밍언어/C언어

[C언어]이스케이프 시퀀스(Escape sequence)

돌아온 Daos 2010.07.13 15:19

이스케이프 시퀀스란 C에서 표현이 곤란한 문자들을 표현하는 방법 중의 하나로 특별한 연속 기호를 사용하는 것을 말합니다.

 시퀀스 의 미 
 \a  경보 (ANSI C)
 \b  백스페이스
 \f  폼 피드(form feed)
 \n  개행(new line)
 \r  캐리지 리턴(carriage return)
 \t  수평 탭
 \v  수직 탭
 \\  백슬래시(\)
 \'  작은따옴표(')
 \"  큰따옴표('')
 \?  물음표(?)
 \0oo  8진수 값( o는 8진수 숫자를 나타낸다 )
 \xhh  16진수 값( h는 16진수 숫자를 나타낸다 )
  1. \a (경보문자)
    경보문자(\a)는 들을 수 있는 또는 볼 수 있는 경보를 만듭니다. 경보의 성질은 하드웨어에 달려있는데 가장 일반적으로 사용되는것은 경보음("삐") 입니다.(일부 시스템에서는 경보 문자는 아무런 효과도 내지 않음)
  2. \b, \f, \n, \r, \t, \v
    위의 이스케이프 시퀀스는 흔히 사용하는 출력 장치 제어 문자들로
    • \b(backspace)는 활성 위치를 현재 라인에서 한 스페이스 뒤로 옮김.
    • \f(form feed)는 활성 위치를 다음 페이지의 시작으로 옮김.
    • \n(new line)은 활성 위치를 ㄷ음 라인의 시작으로 옮김.
    • \r(carriage return)은 활성 위치를 현재 라인의 시작으로 옮김.
    • \t(horizontal tab)은 활성 위치를 수평 탭의 다음 위치로 옮김.(일반적으로 수평 탭은 1,9,17,25 문자 위치에 지정 되어 있음)
    • \v(vertical tab)은 활성 위치를 수직 탭의 다음 위치로 옮김.


      이러한 이스케이프 시퀀스 문자들이 모든 표시 장치에서 반드시 동작하는 것은 아닌데 예를 들어, \f와 \v는 PC화면에서 커서들을 옮기지 않고 이상한 기호를 출력합니다. 하지만 화면이 아니라 프린터로 보내면 제대로 동작합니다.
  3.  \\, \', \"
    위의 이스케이프 시퀀스는 \, ', "를 문자 상수로 사용할 수 있게 합니다.
    예를 들어 화면에
                                           안녕\하세요
    라는 문장을 출력하려면 다음과 같은 코드를 사용해야 합니다.
                                   printf("안녕\\하세요\n");
    참고로, 큰 따옴표로 묶인 문자열에서는 작은 따옴표로 감쌀 필요가 없습니다.
  4. \0oo, \xhh
    이 두 이스케이프 시퀀스는 ASCII코드의 특별한 표현으로 어떤 문자를 8진수 ASCII코드로 표현하려면,
    앞에다가 \를 붙이고 전체를 작은 따옴표로 감싸야 합니다.

    ex) temp = '\007'; // 컴파일러가 경보문자(\a)를 인식하지 못할 경우 사용하는 ASCII코드
    여기서 앞에 있는 0들은 생략 될수 있습니다, 즉 '\07'이나 '\7'도 동일한 효과를 냅니다. 이 표기에서는 0이 없어도 수들을 8진수 수로 해석합니다.

     16진수 형식의 이스케이프 시퀀스는 \뒤에 x나X가 오고 그뒤에 1~3개까지의 16진수 숫자가 옵니다.

     ex)'\x10' 또는 '\X010'  // Ctrl+P 문자(ASCII코드 값 16진수로 10)
    둘다 똑같은 16진수 10(10진수 16)입니다.


- 아래는 몇가지 이스케이프를 사용한 예제입니다. -


                                                        < Source Code >


                           < 출력 결과 >

0 Comments
댓글쓰기 폼