C/C++에서 getch() 함수 사용
이 기사에서는 C/C++에서 getch() 함수를 사용하는 방법을 살펴보겠습니다.
getch() 함수는 키보드에서 문자 입력을 읽으려는 경우에 매우 유용합니다.
이것은 C 표준의 일부는 아니지만 여전히 POSIX C 함수입니다. 따라서 Windows/Linux/Mac에서 이 기능을 계속 사용할 수 있습니다.
몇 가지 예를 통해 이 기능을 사용하는 방법을 살펴보겠습니다.
C/C++에서 getch()의 기본 구문
이 함수는 표준 입력(stdin
)에서 단일 문자를 받아 정수를 반환합니다.
이것은
헤더 파일의 일부로 존재하므로 프로그램에 포함해야 합니다.
#include <conio.h>
int getch();
이 함수는 매개변수를 사용하지 않습니다.
여기서 getch()
는 stdin
에서 읽은 문자의 ASCII 값을 반환합니다.
예를 들어 문자 '0'을 입력하면 ASCII 값 '0'인 49가 반환됩니다.
이제 C/C++에서는 문자를 정수로 직접 변환할 수 있습니다. 따라서 typecasting에서 ASCII 값 49는 char
값 '0'으로 캐스트됩니다!
이제 몇 가지 예를 살펴보겠습니다.
C/C++에서 getch() 사용 - 몇 가지 예
간단한 예로 먼저 단일 문자 읽기를 살펴보겠습니다.
#include <stdio.h>
#include <conio.h>
int main() {
char ch = getch();
printf("Received Input: %c\n", ch);
return 0;
}
샘플 출력
Received Input: a
키보드에서 'a'를 입력한 후 이 출력을 얻었습니다. 이제 키보드에서 5개의 문자를 기다리는 프로그램을 살펴보겠습니다.
getch()
는 키보드 입력을 표시하지 않습니다. 따라서 입력을 입력하면 커서에 입력이 표시되지 않습니다.
5개의 문자를 모두 얻은 후에만 전체 문자열을 표시하겠습니다.
#include <stdio.h>
#include <conio.h>
int main() {
// Set op = {0, 0, 0, 0, 0, 0} = '\0\0\0\0\0\0' string
char op[6] = {0};
for (int i=0; i<5; i++) {
op[i] = getch();
}
printf("Received 5 character Input: %s\n", op);
return 0;
}
산출
Received 5 character Input: Hello
실제로 "Hello\를 입력했을 때 올바르게 출력되었습니다.
' '에 대해 1바이트를 예약해야 하므로 출력 문자열에 6개의 문자가 있습니다. 따라서 op
는 \Hello ”입니다.
결론
이 글에서는 C/C++에서 getch() 함수를 사용하여 키보드에서 문자 입력을 받는 방법에 대해 알아보았습니다.
C 및 C++에 대한 자세한 내용은 C 프로그래밍에 대한 자습서 섹션을 참조하십시오!
참조
- C의 getch() 함수에 대한 Linux 매뉴얼 페이지