본문 바로가기

그 외

Xcode 에서 getch() 구현하기

Xcode 에서는 getch() 가 동작하지 않습니다. conio.h 가 없기 때문인데요,

getchar() 의 속성값을 조정하는 방식으로 Xcode 에서도 getch 와 동일한 효과를 얻을 수 있습니다.


 Xcode 에서 C언어를 배우기 시작했다면 이 코드를 이용하여 getch() 효과를 얻을 수 있겠습니다.

물론 iOS프로젝트가 아닌, 커맨드 라인 프로젝트, C언어 모드로 해야겠지요.


출처:

http://bytes.com/topic/c/answers/503640-getch-linux


#include <termios.h>

#include <unistd.h>


int getch(void)

{

    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;

}