개성파 블로그

<conio.h>에 있는 함수의 기능 본문

컴퓨터

<conio.h>에 있는 함수의 기능

TWorld 2014. 1. 23. 21:44

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;
}


이 코드를 통해 아스키 값을 알 수 있다.


아스키값.txt



  • 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의 아스키 값을 출력한다.

Comments