개성파 블로그
<conio.h>에 있는 함수의 기능 본문
conio은 console and port I/O 약자이며 이 헤더파일은 윈도우즈에서만 쓸 수 있는 비표준함수들이 들어있다.
함수들과 설명
- int kbhit()
keyboard hit의 약자이며 버퍼에 값이 있으면 1을, 없으면 0을 리턴한다.
- int getch()
값을 입력할 때까지 대기했다가 값이 들어오면 버퍼에 저장했다가 버퍼에서 꺼내서 리턴한다.
예외키를 누를 경우 두 개의 값이 생긴다. 확장키들을 구분하는 방법은 getch함수를 다시 한 번 호출 하면 알 수 있다.
에코 기능은 없다.
확장키 값
확장키 값 |
첫 번째 getch() 반환 값 |
두 번째 getch() 반환 값 |
F1 |
0 |
59 |
F2 |
0 |
60 |
F3 |
0 |
61 |
F4 |
0 |
62 |
F5 |
0 |
63 |
F6 |
0 |
64 |
F7 |
0 |
65 |
F8 |
0 |
66 |
F9 |
0 |
67 |
F10 |
0 |
68 |
F11 |
224 |
133 |
F12 |
224 |
134 |
INSERT |
224 |
82 |
DELETE |
224 |
83 |
HOME |
224 |
71 |
END |
224 |
79 |
PGUP |
224 |
73 |
PGDN |
224 |
81 |
↑ |
224 |
72 |
← |
224 |
75 |
→ |
224 |
77 |
↓ |
224 |
80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <conio.h> #include <stdio.h> int main(void) { int ch; while(1){ ch = getch(); if( kbhit() ){ printf("%d, ", ch); ch = getch(); printf("%d\n", ch); } else{ printf("%d\n", ch); } } return 0; } |
이 코드를 통해 아스키 값을 알 수 있다.
- int getche()
getch함수와 기능은 동일하되, 에코기능이 있다.
- int ungetch(int _Ch)
버퍼에 변수 _Ch를 push한다.
- char* cgets(char *_Buffer)
Buffer[0]의 크기를 미리 입력하고 cgets함수를 호출하면 Buffer[1]에 실제 입력 받은 크기가 저장되고 Buffer[2]부터 실제로 받은 값들이 저장된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <conio.h> #include <stdio.h> int main(void) { char Buffer[20]; Buffer[0] = 10; cgets(Buffer); // 1234를 입력한다면 printf("%s, %d", Buffer+2, Buffer[1]); return 0; } |
--출력--
1234, 4
--------
- int cscanf(const char *_Format, ...)
scanf함수와 동일하되 scanf함수는 입력을 받고 엔터를 누를 때까지는 고칠 수 있지만 cscanf함수는 문자의 경우 하나를 입력하는 즉시 cscanf함수를 빠져나오고 정수의 경우 띄어쓰기, 엔터키 등을 입력하면 빠져나온다.
백 번 말하는 것보다 직접 이 함수를 사용하는 것이 몸소 느낄 수 있다.
- int cputs(const char *_Str)
문자열 _Str를 출력한다. 자동 줄바꿈은 없다.
- int cprintf(const char *_Format, ...)
printf함수와 동일하다.
- int putch(int _Ch)
변수 _Ch의 아스키 값을 출력한다.