getc는 일단 문자 하나를 받는 역할을 하잖아요..
그러면 아스키코드가 세개인 "윗화살표"같은 경우는 getc로 받을 수 없나요?
"윗화살표"를 (0x1B,0x5B,0x41) 로 쓰니깐 키가 먹기는 하더군요....
근데 역시나 문제가 생기는 것 같더군요....
어떻게 써줘야 올바른 형식인지 궁금합니다....
고수님들...부탁...
비교적 간단한 질문이기에 답변을 써봅니다.
원래 화살표같은 키는 일반 아스키 값이 아닙니다. 스켄 코드라고해서
일반 키보드 문자로는 입력이 안됩니다.
원래 getc()함수에서는 화살표를 입력하면 값이 0입니다. 즉
int c = getc(); 라면 변수 c에는 0이라는 말입니다. 여기서 좀 헥깔리
는 부분이죠... ^^
이렇게 하면 변수 c에는 화살표 값이 들어갑니다.
int c = getc();
if( c == 0 )
c = getc();
즉 getc()를 두번 써준다면 변수 c에는 제대로 화살표에 대한 값이 들어갑
니다. 어쩝니까... C를 만든 사람이 이렇게 해놓은것을... ^^
Re: getc에서 아스키코드가 두개 이상인 특수문자를 받을때
비교적 간단한 질문이기에 답변을 써봅니다.
원래 화살표같은 키는 일반 아스키 값이 아닙니다. 스켄 코드라고해서
일반 키보드 문자로는 입력이 안됩니다.
원래 getc()함수에서는 화살표를 입력하면 값이 0입니다. 즉
int c = getc(); 라면 변수 c에는 0이라는 말입니다. 여기서 좀 헥깔리
는 부분이죠... ^^
이렇게 하면 변수 c에는 화살표 값이 들어갑니다.
int c = getc();
if( c == 0 )
c = getc();
즉 getc()를 두번 써준다면 변수 c에는 제대로 화살표에 대한 값이 들어갑
니다. 어쩝니까... C를 만든 사람이 이렇게 해놓은것을... ^^
댓글 달기