프로그램 사용/ncurses2024. 11. 30. 15:11

forza horizon 모션 데이터 출력을 위해서 ncurse 사용하게 될 줄이야..

 

일단 패키지를 설치해주고

$ sudo apt-get install libncurses-dev

 

소스를 가져오고

#include <ncurses.h>
#include <unistd.h>

int func1(){
    initscr();
    mvprintw(0, 0, "Hello, World"); // 화면의 0행, 0열부터 Hello, World를 출력합니다.
    refresh(); // 화면에 출력하도록 합니다.
    sleep(1);
    endwin();
    return 0;
}

int main(){
    return func1();
}
#include <ncurses.h>
#include <unistd.h>

int timer(){
    int row = 10, col = 10;
    initscr();
    noecho(); // 입력을 자동으로 화면에 출력하지 않도록 합니다.
    curs_set(FALSE); // cursor를 보이지 않게 합니다. 

    keypad(stdscr, TRUE);
    while(1){
        int input = getch();
        clear();
        switch(input){
            case KEY_UP:
            mvprintw(--row, col, "A"); // real moving in your screen
            continue;
            case KEY_DOWN:
            mvprintw(++row, col, "A");
            continue;
            case KEY_LEFT:
            mvprintw(row, --col, "A");
            continue;
            case KEY_RIGHT:
            mvprintw(row, ++col, "A");
            continue;

        }
        if(input == 'q') break;
    }

    endwin();
    return 0;
}

int main(){
    return timer();
}

 

아래의 링커 옵션을 주고 빌드하면 끝

$ gcc ncruse_example.c -lncurses -o bin/ex1

 

mvprintw() 만 쓰면 원하는 위치에 꾸준히 갱신할 수 있을 듯

[링크 : https://blackinkgj.github.io/ncurses/]

 

 

[링크 : https://www.ibm.com/docs/ko/aix/7.3?topic=p-printw-wprintw-mvprintw-mvwprintw-subroutine]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurse  (0) 2015.04.27
Posted by 구차니