본문 바로가기

개념정복💫/C 정복2

C언어 멀티플랫폼 키 입력 처리: kbhit와 getch 함수 구현 기존에 getchar를 사용했지만, 동적인 기능 작업을 위해 추가 구현하게 되었고윈도우, 맥, 리눅스 환경에서 사용자의 키 입력을 감지해서 반영할 수 있도록 하였다.  1. 플랫폼별 키 입력 처리 분리코드는 운영 체제에 따라 다른 라이브러리를 사용한다#ifdef _WIN32#include #else#include #include #include 윈도우 환경conio.h 라이브러리의 _kbhit와 _getch를 사용.간단히 키 입력을 처리할 수 있는 함수 제공.맥/리눅스 환경키 입력 감지를 위해 termios, unistd.h, fcntl.h를 활용.kbhit와 getch를 직접 구현하여 윈도우와 유사한 동작을 재현.2. kbhit와 getch 함수 구현2-1. kbhit 함수 구현 (맥/리눅스용)kbhi.. 2025. 1. 12.
C언어 입력 오류 해결하기: getchar()로 인한 중복 출력 문제 맥과 윈도우에서 코드를 작업할 것 같아, getchar()을 사용하여 입력값을 받았다. 여기서 중복 출력이 되는 문제가 발생하였고,하단 입력으로 해결하였다. getchar()는 한 번 입력을 받을 때마다 버퍼에 있는 문자들을 차례대로 읽어온다고 한다.그래서 사용자가 키를 입력한 후, 엔터키를 누르면 입력 버퍼에 \n 문자가 남는다. 이 문자는 이후의 getchar() 호출에서 다시 읽혀서 원하지 않는 동작을 일으킬 수 있으므로!!이를 해결하려면, 입력을 받은 후 getchar()로 남은 \n을 제거하는 코드 (while ((getchar()) != '\n');)를 추가하여 버퍼를 비워줘야 한다. 2025. 1. 10.