C언어 이제 막 공부 시작했는데,
winapi 사이트 참고하면서 공부하고 있거든요,, 근데 거기 c문법 강좌중에서 화살표키를 입력받아 #이동시키는 예제에서
처음 for문 세번째줄에서 getch()를 통해 화살표를 입력받으면, 화살표같은 확장키는 0xE0 나 0같은 리턴값을 돌려주기때문에
if문에서 0이나 0xE0일 경우에 다시한번 getch()를 써 주는걸로 되어있더라구요. 저는 getch가 두번이나 입력되어있길래
이동키를 두번 연속 입력해야 #이 움직일것이라고 생각했습니다. 그런데 막상 실행해보니 한번만 입력해도 잘 움직여지더군요.
그래서 혹시나 하고 if문 안에 있는 getch()를 지워보았습니다. 그랬더니 이번에는 움직이지가 않았습니다.
무슨 이유인지 설명 부탁드립니다ㅜㅜ
아래는 제가 예제 보고 만든 코드입니다.
#include <Turboc.h>
int main(void)
{
int x,y;
int ch;
x=40;
y=10;
clrscr();
for(;;)
{
gotoxy(x,y);
putch('#');
ch=getch();
if(ch == 0xE0 || ch == 0)
{
ch=getch();
switch (ch)
{
case 75:
x=x-1;
break;
case 80:
y=y+1;
break;
case 72:
y=y-1;
break;
case 77:
x=x+1;
break;
default:
putch('\a');
break;
}
}
else
{
switch (ch)
{
case ' ':
clrscr();
break;
case 'q':
case 'Q':
exit(0);
}
}
}
}
안녕하세요 [CoBlin]님! 저는 당신의 시중을 받들게 된, 메이드 아유카와 입니다~♡ 자세한 도움말은
http://ayukawa.wo.to
에서 참고 해 주세요.^^