티스토리 뷰

프로그래밍/잡탕

C에서 문자 입력을 바로 받기

터프 프로그래머 2015. 3. 8. 13:27

보통 getchar() 함수를 이용해서 문자를 입력받는다. 문제는 이게 엔터를 누르기 전에는 입력이 바로 되질 않는다는 것이다. 보통은 문제가 안 되는데 현재 콘솔 게임을 만들고 있다보니까 이게 문제가 되었다. 찾아보니 단순히 C 레벨에서의 문제가 아니라 터미널과의 깊은 연관성을 가진 문제라나....


어쨌든 문제 해결은 해야하니까 찾아보니까 어떤 용자가 함수를 공유해뒀다. 링크


#include <stdio.h>

#include <termios.h>

#include <unistd.h>


int mygetch() {

  struct termios oldt, newt;

  int ch;

  tcgetattr( STDIN_FILENO, &oldt );

  newt = oldt;

  newt.c_lflag &= ~( ICANON | ECHO );

  tcsetattr( STDIN_FILENO, TCSANOW, &newt );

  ch = getchar();

  tcsetattr( STDIN_FILENO, TCSANOW, &oldt );

  return ch;

}


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday