2013-09-08 2 views
4

나는 다음과 같은 프로그램을 실행하면 :감지 키를 눌러 사용 getchar가()

int main() 
{ 
    getchar(); 
    return 0; 
} 

을 그리고 내가 ^[[A를 얻을 콘솔에 (위쪽 화살표) ↑ 같은 화살표 키 중 하나를 누르십시오. 나는 이것이 무엇을 의미하는지 알고 싶다. 구체적으로, 나는 무엇을 의미하는지 알고 싶다 ^[.

답변

2

다른 문자 앞에있는 캐럿 문자는 제어 문자 (코드 포인트가 0에서 31 사이의 문자 중 하나)의 이스케이프 시퀀스입니다.^[는 ESC라는 이스케이프 문자이며 대개 사용자 터미널의 이스케이프 시퀀스를 도입합니다. 위쪽 화살표를 칠 때 키보드에서 보내는 내용입니다.

+0

그러나 keyboartd가 스캔 코드의 일부인 이유는 무엇입니까? –

+0

위쪽 화살표의 ASCII 코드가 없습니다. ASCII 코드가 연결되어 있지 않은 이스케이프 시퀀스 키가 변환되는 것을 설명하는 ANSI 표준이 있습니다. 이것은 또한 ↑가^[[A. – fuz

4

^은 Ctrl 키의 약식 표기입니다. 그런 다음 ^[ESC의 경우 terminal escape code이며 이스케이프 문자입니다.