|  |
| |
| yuka1915 |
getch() 함수자체는 원래 아무런키나 하나더 입력받는용으로 사용됩니다.
쉽게 예시를들자면 프로그램을 만든경우에 대부분의 프로그램은 특별한 처리를 하지않으면 자동으로 종료되는데요.
그걸 막기위해서 주로 쓰이는것이 for구문으로 무한루프처리를 하던가 system 함수를 사용하던가 아니면 getch() 함수를 사용합니다.
만약
#include<stdio.h>
#include<conio.h>
int main()
{
printf("Hi\n");
}
그냥 이렇게 작성하면 프로그램을 커맨드라인에서 실행하지않으면 바로 꺼지게되죠.
하지만
#include<stdio.h>
#include<conio.h>
int main()
{
printf("Hi\n");
_getch();
}
이런식으로 입력해주게되면 종료되지않게됩니다. 한글자 더 입력받아야하기때문이죠 |
2014/04/14 |
|
| mystell |
그렇군요. 감사합니다.(다른 입력 함수를 찾아 봐야 겠네요;;) |
2014/04/14 |
|
| yuhioh8 |
kbhit함수를 써보시면어떨까요
입력버퍼에 데이터가 있으면 true없으면 false를 출력해주는데요 키누르면 true 안누르면 false
if( kbhit())
{
char example1 = getch();
printf("%c", example1);
if( example1 == 13) //엔터값인데 키보드나 컴퓨터마다 다르더군요
{
printf("\n");
}
if(example1 == '1' // 임의의 수를 입력하면 종료 되게하는데 예시는 1을 넣으면 꺼지는 엔터키처럼 다를수잇습니다;
{
break;
}
}
== ' 여기' 여기 값에 알맞은 스캔코드값을 넣어주시면 됩니다
printf( "%c 의스캔코드는%d , example1, example1); 이렇게 알수 잇겟네요 |
2014/04/21 |
|
| wnsduddndud |
키보드 스캔 코드의 길이가 2바이트이기 때문에 getch함수로 입력을 받으려면 getch함수를 두 번 연속해서 써야합니다
보통은 함수 형태로 만들어서
void getkey(char* a){
*a = getch();
if(*a == 0x00||*a == 0xe0) *a =getch();
}
와 같은 형태로 사용합니다 |
2018/03/04 |
|